MySQL 查询问题(REGEXP匹配 )

在学习MySQL,查询中使用使用regexp正则表达式来匹配姓名出现了下图的结果,想匹配姓李的同学,却同时匹配出了姓黄的同学;同样的,想匹配姓张的同学,却同时匹配出了姓宋... 在学习MySQL,查询中使用使用regexp正则表达式来匹配姓名出现了下图的结果,想匹配姓李的同学,却同时匹配出了姓黄的同学;同样的,想匹配姓张的同学,却同时匹配出了姓宋的同学. 一脸懵.......不知道是什么原因,请大神帮看看。附上数据表 展开
 我来答
职场达人涂涂
高粉答主

2019-10-14 · 每一个情感的背后都有一个故事
职场达人涂涂
采纳数:7938 获赞数:118932

向TA提问 私信TA
展开全部
MySQL中的模式匹配(标准SQL匹配和正则表达式匹配)

1. 使用LIKE和NOT LIKE比较操作符(注意不能使用=或!=);

2. 模式默认是忽略大小写的;

3. 允许使用”_”匹配任何单个字符,”%”匹配任意数目字符(包括零字符);

MySQL还提供象UNIX实用程序的扩展正则表达式模式匹配的格式:

1. 使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,他们是同义词);

2. REGEXP模式匹配与被匹配字符的任何地方匹配,则匹配成功(即只要被匹配字符包含或者可以等于所定义的模式,就匹配成功);

不同于LIKE模式匹配,只有和整个值匹配,才匹配成功(即只有被匹配字符完全和所定义的模式匹配,才匹配成功)
阳光上的桥
2019-10-15 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65830
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
查询姓不应该使用regexp,应该使用like,例如:
where 姓名 like '张%'
REGEXP的*表示把它前面的字符重复0次或者n次,不是匹配任意串,你查询姓氏应该用:
where 姓名 regexp '^张.*'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式