(转)MySQL数据表中带LIKE的字符匹配查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了(转)MySQL数据表中带LIKE的字符匹配查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2428字,纯文字阅读大概需要4分钟。
内容图文
MySQL数据表中带LIKE的字符匹配查询
2014年07月15日09:56 百科369
MySQL数据表中带LIKE的字符匹配查询
LIKE关键字可以匹配字符串是否相等。
- 如果字段的值与指定的字符串相匹配,则符合查询条件,该记录将被查询出来。
- 如果与指定的字符串不匹配,则不符合查询条件。
基本的语法格式如下:
[NOT] LIKE ‘字符串‘
NOT:可选。加上NOT表示与指定的字符串不匹配时满足条件。
字符串:指定用于匹配的字符串,该字符串必须加单引号或者双引号。
“字符串”参数的值可以是一个完整的字符串,也可以是包含百分号(%)或者下划线(_)的通配符。
注意%和_的区别:
- “%”表示任意长度的字符串,长度可以为0。例如,g%gle表示以字母g开头,以字母gle结尾的任意长度的字符串。g%gle可以表示ggle、gogle、gfgle、google、gusgle、gooooogle等。
- “_”只能表示单个字符。例如,g_gle表示以字母g开头,以字母gle结尾的5个字符。中间的“_”可以表示任意一个字符。g_gle可以表示gagle、gbgle、gcgle、gdgle或gogle等。
实例1
使用LIKE关键字匹配一个完整的字符串‘Tom‘。SELECT语句的代码如下:
SELECT * FROM employee WHERE name LIKE ‘Tom‘;
在DOS提示符窗口中查看使用LIKE关键字匹配一个完整的字符串‘Tom‘的操作效果。如下图所示:
上图中代码执行的结果显示,name字段中取值为Tom的记录被查询了出来。其它不符合条件的记录都被过滤掉了。
在这里,LIKE与等于号(=)是等价的。如果修改为“=”,查询结果是一样的。如下图所示:
但是,上面的情况只对匹配一个完整的字符串有效,如果字符串中包含了通配符,就不能这样进行替换了。
实例2
使用LIKE关键字匹配带有通配符“%”的字符串‘河南%‘。SELECT语句的代码如下:
SELECT * FROM employee WHERE homeaddress LIKE ‘河南%‘;
在DOS提示符窗口中查看使用LIKE关键字匹配带有通配符“%”的字符串‘河南%‘的操作效果。如下图所示:
上图中代码执行的结果显示,homeaddress字段以“河南”开头的记录都被查询出来了。
如果使用“=”替换LIKE时,则查询结果为空记录。如下图所示:
上图中代码执行的结果显示,没有查询出任何记录。这说明字符串中包含了通配符时,“=”就不能代替LIKE了。
实例3
使用LIKE关键字匹配带有通配符“_”的字符串‘T_m‘。SELECT语句的代码如下:
SELECT * FROM employee WHERE name LIKE ‘T_m‘;
在DOS提示符窗口中查看使用LIKE关键字匹配带有通配符“_”的字符串‘T_m‘的操作效果。如下图所示:
上图中代码执行的结果显示,name字段中取值为Tom的记录被查询出来了。
“_”只能代表一个字符。如果字符串为“T_”,将不能查询出结果。如下图所示:
上图中代码执行的结果显示,没有查询出任何记录。因为name字段中不存在以“T”开头,长度为2的记录。
提示
需要匹配的字符串需要加引号,可以是单引号,也可以是双引号。在MySQL 5.6.19版本中,使用一个“_”符号也可以代表一个汉字。如下图所示:
如果使用一个“_”符号代表一个汉字时,不能正确查询出记录,则可以使用两个“_” 符号来代表一个汉字,再查询一下试试。毕竟,一般情况下,一个汉字是两个字符,它需要两个“_”符号来代表一个汉字。
使用LIKE关键字匹配带有通配符“_”的字符串‘_雪_‘。SELECT语句的代码如下:
SELECT * FROM employee WHERE name LIKE ‘_雪_‘;
在DOS提示符窗口中查看使用LIKE关键字匹配带有通配符“_”的字符串‘_雪_‘的操作效果。如下图所示:
上图中代码执行的结果显示,name字段中,中间一个汉字为“雪”的三个汉字的名字被查询了出来。
NOT LIKE表示字符串不匹配的情况下符合条件。
实例4
使用NOT LIKE关键字查询不是姓刘的所有人的记录。SELECT语句的代码如下:
SELECT * FROM employee WHERE name NOT LIKE "刘%";
在DOS提示符窗口中查看使用NOT LIKE关键字查询不是姓刘的所有人的记录的操作效果。如下图所示:
上图中代码执行的结果显示,name字段中取值为“刘兵”的记录被排除出去了。
实例5
使用LIKE关键字匹配带有通配符“%”的字符串‘%军‘。SELECT语句的代码如下:
SELECT * FROM employee WHERE name LIKE ‘%军‘;
在DOS提示符窗口中查看使用LIKE关键字匹配带有通配符“%”的字符串‘%军‘的操作效果。如下图所示:
上图中代码执行的结果显示,name字段中最后一个字为“军”的所有人的记录被查询了出来。
实例6
使用LIKE关键字匹配带有通配符“%”的字符串‘%雪%‘。SELECT语句的代码如下:
SELECT * FROM employee WHERE name LIKE ‘%雪%‘;
在DOS提示符窗口中查看使用LIKE关键字匹配带有通配符“%”的字符串‘%雪%‘的操作效果。如下图所示:
上图中代码执行的结果显示,name字段中,中间任意位置为“雪”的人的名字的记录都被查询了出来。
提示
使用LIKE和NOT LIKE关键字可以很好匹配字符串。而且,可以使用“%”和“_”等通配符来简化查询。
原文:http://www.cnblogs.com/zzzzw/p/5084388.html
内容总结
以上是互联网集市为您收集整理的(转)MySQL数据表中带LIKE的字符匹配查询全部内容,希望文章能够帮你解决(转)MySQL数据表中带LIKE的字符匹配查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。