现在的位置: 首页 > 编程·网络 > SQL编程 > 正文
MYSQL的包含查询,类似like,又不同于like
2015年01月28日 SQL编程 ⁄ 共 886字 MYSQL的包含查询,类似like,又不同于like已关闭评论 ⁄ 被围观 2,022 views+
 id  name  str
 1 sonnyboy 1,11,12,13,
2 sonnyboy1 2,22,23,24
3 sonnyboy2 11,23,12

   表名为 temp
需要查询 str 包含1的字段 的name值  根据上表中查询 应该只有id 为1的 满足需求

在mysql 中instr函数的语法是:INSTR(字段名, 字符串)。这个函数返回字符串在某一个字段的内容中

的位置, 没有找到字符串返回0,否则返回所在的位置(是从1开始)
1.select name from temp where instr(str,1)>0
包括sonnyboy 和sonnyboy2

2.

FIND_IN_SET(str,strlist)
如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子

串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,

FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果 strlist是空字符串,返回

0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。
mysql>   SELECT   FIND_IN_SET( 'b ', 'a,b,c,d ');
select  name from temp where find_in_set(1,str);

这个查询满足要求

3.SUBSTRING_INDEX(str,delim,count)
返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回最后的分隔符到

左边(从左边数)   的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。
mysql>   select   SUBSTRING_INDEX( 'www.mysql.com ',   '. ',   2);
->   'www.mysql '
mysql>   select   SUBSTRING_INDEX( 'www.mysql.com ',   '. ',   -2);
->   'mysql.com '

该函数对多字节是可靠的。



本文链接:MYSQL的包含查询,类似like,又不同于like

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:海鹏的博客,谢谢!^^


抱歉!评论已关闭.

无觅相关文章插件,快速提升流量