
MySQL 查询问题(REGEXP匹配 )
在学习MySQL,查询中使用使用regexp正则表达式来匹配姓名出现了下图的结果,想匹配姓李的同学,却同时匹配出了姓黄的同学;同样的,想匹配姓张的同学,却同时匹配出了姓宋...
在学习MySQL,查询中使用使用regexp正则表达式来匹配姓名出现了下图的结果,想匹配姓李的同学,却同时匹配出了姓黄的同学;同样的,想匹配姓张的同学,却同时匹配出了姓宋的同学. 一脸懵.......不知道是什么原因,请大神帮看看。附上数据表
展开
2个回答
展开全部
MySQL中的模式匹配(标准SQL匹配和正则表达式匹配)
1. 使用LIKE和NOT LIKE比较操作符(注意不能使用=或!=);
2. 模式默认是忽略大小写的;
3. 允许使用”_”匹配任何单个字符,”%”匹配任意数目字符(包括零字符);
MySQL还提供象UNIX实用程序的扩展正则表达式模式匹配的格式:
1. 使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,他们是同义词);
2. REGEXP模式匹配与被匹配字符的任何地方匹配,则匹配成功(即只要被匹配字符包含或者可以等于所定义的模式,就匹配成功);
不同于LIKE模式匹配,只有和整个值匹配,才匹配成功(即只有被匹配字符完全和所定义的模式匹配,才匹配成功)
1. 使用LIKE和NOT LIKE比较操作符(注意不能使用=或!=);
2. 模式默认是忽略大小写的;
3. 允许使用”_”匹配任何单个字符,”%”匹配任意数目字符(包括零字符);
MySQL还提供象UNIX实用程序的扩展正则表达式模式匹配的格式:
1. 使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,他们是同义词);
2. REGEXP模式匹配与被匹配字符的任何地方匹配,则匹配成功(即只要被匹配字符包含或者可以等于所定义的模式,就匹配成功);
不同于LIKE模式匹配,只有和整个值匹配,才匹配成功(即只有被匹配字符完全和所定义的模式匹配,才匹配成功)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询