Mysql字符串字段判断是否包含某个字符串的方法
摘要:SELECT * FROM users WHERE find_in_set('标志符', 字段名名名);那般是可以的,怎样掌握呢?mysql有很多标志符串涵数 find_in_set(str1,str2)涵数是返回str2中str1隶属的位置数据信息库数据库索引,str2尽...
SELECT * FROM users WHERE find_in_set('标识符', 字段名名);
那样是能够的,如何了解呢?
mysql有许多标识符串涵数 find_in_set(str1,str2)涵数是回到str2中str1所属的部位数据库索引,str2务必以","切分开。
拷贝编码
注:当str2为NO1:“3,6,13,24,33,36”,NO2:“13,33,36,39”时,分辨2个数据信息中str2字段名是不是包括‘3’,该涵数可极致处理
mysql SELECT find_in_set()('3','3,6,13,24,33,36') as test;
- 1
mysql SELECT find_in_set()('3','13,33,36,39') as test;
- 0
拷贝编码
方式三:locate(标识符,字段名名)
应用locate(标识符,字段名名)涵数,假如包括,回到 0的数,不然回到0 ,
它的别称是 position in
select * from 表名 where locate(标识符,字段名)
select * from 表名 where position(标识符 in 字段名);
事例:分辨site表格中的url是不是包括''子串,假如不包括则拼凑在url标识符串开始
update site set url =concat('',url) where locate('',url)=0
留意mysql中标识符串的拼凑不可以应用加号+,用concat涵数
方式四:INSTR(字段名,标识符)
select * from 表名 where INSTR(字段名,标识符)
此外,小编查询了之上SQL的实行方案(不包括find_in_set),发觉全是:
在网上说模糊不清查寻 用 locate 速率快,不知道道结果如何来的,将会是绝大多数据量的状况一下吧。
巴林左旗企业网站建设
文章内容源于:-尚网汇智 net2006 如转截请标明出處!