您的位置:首页 > 数据库 > MySQL

MySQL的模糊查询(like)

2016-07-01 10:42 465 查看
1.  %:表示任意0个或多个字符。可匹配任意类型和长度的字符

1)

(1)select * from doctor_info where doctor_name like '%c%';

会把 doctor_info 表的 doctor_name 字段中有 c 的记录全部找出来

(2)select * from doctor_info where doctor_name like '云%';

会把 doctor_info 表的 doctor_name 字段中的 "云***" 记录全部找出来,但是不会找到 "赵云"

(3)select * from doctor_info where doctor_name like '%云';

会把 doctor_info 表的 doctor_name 字段中的 "****云"记录全部找出来,可以找到 "赵云"

(4)select * from doctor_info where doctor_name like '%c%' and email like '%e%';
会把 doctor_info 表的 doctor_name 字段中有 c 和 email 字段中有 e 的全找出来 

2)  _: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

(1)SELECT * FROM doctor_info WHERE doctor_name LIKE '_文_' ;

只找出“赵文武”这样doctor_name为三个字且中间一个字是“三”的; 

SELECT * FROM doctor_info WHERE doctor_name LIKE '赵__' ;

只找出“赵文武”这样doctor_name为三个字且第一个字是“赵”的; 

3)[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。 
  (1) SELECT
* FROM doctor_info WHERE doctor_name LIKE '[赵张李王]文' ;
将找出“赵三”、"张三"、“李三”、“王三”(而不是“赵张李王三”); 
 
  SELECT * FROM doctor_info WHERE doctor_name LIKE '赵[1-9]' 将找出“赵1”、“赵2”、……、“赵9";
  [
] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e” 

4)
[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
SELECT
* FROM doctor_info WHERE doctor_name LIKE '[关张马黄]文' ;

将找出不姓"关"、"张"、"马"、"黄"的“赵文”、“孙文”等

SELECT
* FROM doctor_info WHERE doctor_name LIKE '赵[^1-4]';
将排除“赵1”到“赵4”,寻找“赵5”、“赵6”、……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: