(转)MySQL数据表中带LIKE的字符匹配查询
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关键字可以很好匹配字符串。而且,可以使用“%”和“_”等通配符来简化查询。
(转)MySQL数据表中带LIKE的字符匹配查询的更多相关文章
- mysql进阶(五)数据表中带OR的多条件查询
MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询.使用OR关键字时: 条件 1) 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 2) 如果不符合这些查询条件 ...
- 向mysql数据表中插入数据失败的原因
1.案例代码: $sql1="insert into content(category,subject,content,username,release_date) values('{$ca ...
- 删除Mysql数据表中多余的重复记录的sql语句
数据表 sniper_tb 中存在主键 id,字段url,现需要在url字段上添加 unique,但由于url存在重复记录,导致添加失败. 如何删除表中多余的url重复记录,仅保持一条? 思路一 将 ...
- MySQL 修改数据表中的字段的字符编码
1.查询 MySQL 的版本: SELECT VERSION(); 2.查询 MySQL 当前使用的字符集: SHOW VARIABLES LIKE '%character%'; 3.查询指定数据库的 ...
- mysql 数据表中查找、删除重复记录
为了性能考虑,在阅读之前提醒大家,如果有子查询,子查询查询到的数据最好不要超过总数据量的30%. 查询有重复数据的记录 select * from F group by a,b,c,d having ...
- 【转】MySQL数据表中记录不存在则插入,存在则更新
mysql 记录不存在时插入在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问 ...
- 从mysql数据表中随机取出一条记录
核心查找数据表代码: ; //此处的1就是取出数据的条数 但这样取数据网上有人说效率非常差的,那么要如何改进呢 搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据. S ...
- jnhs中国省市县区mysql数据表不带gps坐标
1.查省 SELECT * FROM china WHERE china.Pid=0 2.查市 SELECT * FROM chinaWHERE china.Pid=330000 3.查区 SELEC ...
- MySQL数据表中内容大小写区分的设置
MYSQL在默认的情况下查询是不区分大小写的,例如: ? 1 2 3 4 5 6 7 mysql> create table t1( -> name varchar(10)); Qu ...
随机推荐
- 【Hadoop学习】Apache Hadoop项目简介
正在撰写,稍后来访……
- HDU-3436 Queue-jumpers 树状数组 | Splay tree删除,移动
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3436 树状数组做法<猛戳> Splay tree的经典题目,有删除和移动操作.首先要离散化 ...
- Android Studio 模拟器启动问题——黑屏 死机 解决方法
今天用了下Android Studio,出现了一些问题,现在将启动过程中遇到的问题和解决方案列出来,方便大家参考. 安装过程不多说,网上一搜一大把. 那直接说问题吧: 1. 无法启动,报错:Faile ...
- 【现代程序设计】【homework-03】【11061027】
Q:你现在使用的代码规范是什么, 和上课前有什么改进? A: 代码规范........自定义的代码规范算 代码规范吗..... Q:你的同伴有哪些优点 (列出至少三点), 和那些需要改进的地方 ...
- Oracle-Oracle10 数据空间建立,导入,导出--oracle10g 删除步骤
--以system/manager身份登录SQLPlus,并执行 ========================管理员登陆==================================== 登 ...
- Install PhoneGap
To Install, ensure that you have NodeJS installed, then open your commandline and run the following: ...
- 剑指OFFER之最小的K个数(九度OJ1371)
题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 输入: 每个测试案例包括2行: 第一行为2个整数n,k(1< ...
- Css3 display用法
display 属性规定元素应该生成的框的类型. display:none 此元素不会被显示 display:block 此元素将显示为块级元素,此元素前后会带有换行符 display:inl ...
- cocos2d-x 纹理研究
转自:http://blog.csdn.net/qq51931373/article/details/9119161 1.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要 ...
- Aizu 2302 On or Off dfs/贪心
On or Off Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.act ...