老师,我在命令行窗口也试了,还是不行呢,还是只能匹配到英文字符,不能识别中文

老师,我在命令行窗口也试了,还是不行呢,还是只能匹配到英文字符,不能识别中文

SELECT * 

FROM t_emp

WHERE ename REGEXP "^[\\u4e00-\\u9fa5]{2,4}$";

-- 这是我的SQL代码,数据表就用的是课件提供的表,您帮我看一下这个SQL对不对吧,我卡住半天了

http://img1.sycdn.imooc.com//climg/5edcf33909e5d0cd07920229.jpg-- 这是查询出来的结果,我自己添加了几个中文名字的数据,但是select不出来

-- 我安装的是 SQL版本是  5.6.47 这个会有影响吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿满 2020-06-08 11:10:55

同学你好,这个是版本的原因,使用MySQL8的版本可以查询。同学是5的版本,建议使用如下命令再试试:

SELECT * 
FROM t_emp
WHERE  HEX(ename) REGEXP "e[4-9][0-9a-f]{4}";

祝:学习愉快~

  • 可以解释一下这句吗:

    HEX(ename) REGEXP "e[4-9][0-9a-f]{4}"


    2022-10-28 16:17:18
  • 同学你好,这里的正则表达式与^[\\u4e00-\\u9fa5]{2,4}$作用一样,是用来匹配2-4位的中文汉字,这里应该mysql5不支持^[\\u4e00-\\u9fa5]{2,4}$所以需要使用e[4-9][0-9a-f]{4}

    综上所述:上述sql是根据查询ename字段为2-4位中文汉字的数据

    祝学习愉快~

    2022-10-28 16:50:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师