我的为什么查找不出来,MySQL 版本5.7

我的为什么查找不出来,MySQL 版本5.7

按照老师的方法写的,找不到

SELECT ename,comm,sal

FROM t_emp WHERE comm IS NOT NULL

AND sal > 1500

AND ename REGEXP "^[\\u4e00-\\9fa5]{2,4}$";


PS:在问答里看到的方法,已经试过了找不到

SELECT ename,comm,sal

FROM t_emp WHERE comm IS NOT NULL

AND sal > 1500

AND ename REGEXP "^[\\u4e00-\\9fa5].*$";


PS:这是我添加的内容

8000 、牛二、 ATHLETE、 7839 、1983-06-03、 9999.00、 5000.00 、10



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

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

3回答
好帮手慕笑蓉 2020-06-18 11:01:39

同学,你好。有如下官方解释:

http://img1.sycdn.imooc.com//climg/5eead8fa09957dd310710411.jpg

mysql版本不一样导致正则匹配的规则不一样,在5.7版本如果要使用正则匹配的话,还需要了解5.7版本对于正则匹配的语法规则,加之对比于mysql5.7,MySQL8.0支持了更为丰富,也更加规范的正则规则,更加便于开发人员,所以强烈建议同学使用MySQL8.0的版本,如果想了解mysql5.7如何进行正则匹配的,同学可在网络上了解。

祝学习愉快~

好帮手慕笑蓉 2020-06-03 17:16:43

同学,你好。在确定数据库中确实存在“牛二”这条数据后,使用如下方式查看数据表的编码方式是否是utf8的编码方式:

http://img1.sycdn.imooc.com//climg/5ed769830996ba4d06040610.jpg

如果不是,则通过以下语句将表t_emp的数据格式改为utf8mb4,如:

alter table 数据库名 CHARACTER SET utf8mb4;

祝学习愉快~

  • 提问者 MaxLu #1
    还是找不到数据库中的中文数据。 这是我的代码: SELECT ename,comm,sal FROM t_emp WHERE comm IS NOT NULL AND sal > 1500 AND ename REGEXP "^[\\u4e00-\\u9fa5]{2,4}$"; 这是我数据库中的中文数据: 7981 牛二 CLERK 7698 1987-02-18 5620.00 20 这是在终端中运行 show database create t_emp; 之后返回的结果,我的CHARSET= utf8 | t_emp | CREATE TABLE `t_emp` ( `empno` int(4) NOT NULL, `ename` varchar(20) DEFAULT NULL, `job` varchar(20) DEFAULT NULL, `mgr` int(4) DEFAULT NULL, `hiredate` date DEFAULT NULL, `sal` decimal(10,2) DEFAULT NULL, `comm` decimal(10,2) DEFAULT NULL, `deptno` int(2) DEFAULT NULL, PRIMARY KEY (`empno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    2020-06-16 16:24:03
  • 好帮手慕笑蓉 回复 提问者 MaxLu #2
    同学,你好。根据同学提供的代码,在查询语句中有如下条件: comm IS NOT NULL,提供的牛二数据是否 comm 为null 呢?如果为空将其改成其他数据,试一试。 祝学习愉快~
    2020-06-16 19:10:24
  • 提问者 MaxLu 回复 好帮手慕笑蓉 #3
    我给 comm 里面添加了数据,但是还是找不到。 我的 MySQL 版本是 5.7的,是不是正则表达式的书写有区别,我在问答区里面看到有不同的正则表达式,我按照那样的写了,可以查找到中文数据,但是里面也有英文数据。
    2020-06-16 19:34:42
好帮手慕笑蓉 2020-06-03 11:37:25

同学,你好。因为正则表达式少了一个u,进行如下更改:

http://img1.sycdn.imooc.com//climg/5ed71aeb09683f8905610037.jpg

如果解决了你的疑惑,请采纳,祝学习愉快~ 

  • 提问者 MaxLu #1
    加了,还是没有
    2020-06-03 14:07:07
  • 提问者 MaxLu #2
    有没有人能帮帮我????
    2020-06-03 16:56:21
  • 好帮手慕笑蓉 回复 提问者 MaxLu #3
    同学,你好。有报错信息吗?有的话可以截图到问答区,方便老师快速定位问题原因,同时将运行的sql语句也截图到问答区,会有老师帮你解决的。 祝学习愉快~
    2020-06-03 16:59:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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