users表内容 

uid     name
--------------
1001    张三
1002    李四
1003    王五
1004    赵六
1005    小白
1006    小蓝
1007    白鸽
1008    一只耳
1009    闫小小

方案一:like

        like 是模糊查询 。

        其中%代表多个字符,_代表单个字符

例子 使用%:

select * from users where name like '小%';

uid     name
--------------
1005    小白
1006    小蓝
select * from users where name like '%小%';

uid     name
-------------
1005    小白
1006    小蓝
1009    闫小小

使用_:

select * from users where name like '小_';

uid     name
-------------
1005    小白
1006    小蓝
select * from users where name like '_小_';

uid     name
--------------
1009    闫小小

 方案二:locate

         locate 判断是否包含某字符串 如:select * from users where locate('白',name)>0;

当name里面不包含‘白’的时候,返回0,包含返回第一个所在位置.

 例子 :

select * from users where locate('白',name)>0;

uid     name
-------------
1005    小白
1007    白鸽

方案三:position

        position 判断是否包含某字符串 如:select * from users where position('小' in name)>0

当name里面不包含 ‘小’ 的时候,返回0,包含则返回第一个所在位置.

例子:

select* from users where position('小' in name)>0;

uid     name
-------------
1005    小白
1006    小蓝
1009    闫小小

方案四:正则 

  1. 正则匹配两个字符串是否含有交集,我中有你,你中有我,如有共同部分,则返回数据,如下:

select * from user where user_name regexp '张三|李四|小.*'

返回张三,李四,含有 ‘小 ’ 的名字

例子 

select * from users where name regexp '张三|李四|小.*';

uid     name
-------------
1001    张三
1002    李四
1005    小白
1006    小蓝
1009    闫小小

方案五:instr

        instr 判断是否包含某字符串 如:select * from users where instr(name,'小')>0

当name里面不包含 ‘小’ 的时候,返回0,包含则返回第一个所在位置.

select * from users where instr(name,'小')>0;

uid     name
-------------
1005    小白
1006    小蓝
1009    闫小小

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐