sql查询字段是否包含某个值或某些值的方法
·
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 闫小小
方案四:正则
-
正则匹配两个字符串是否含有交集,我中有你,你中有我,如有共同部分,则返回数据,如下:
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 闫小小
更多推荐
所有评论(0)