myid是什么类型,是数值类型应这样写:
创新互联是一家专注于做网站、网站设计与策划设计,榕江网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:榕江等地区。榕江做网站价格咨询:18982081108
select * from table where saleid=2376 and myid in (2,3,4,5,6)
如果myid是字符类型,应该这样写:
select * from table where saleid=2376 and myid in ('2','3','4','5','6')
mysql有专门的函数实现你需要的功能:
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');
返回值2
文章中有标签字段(label),存的是标签ID字符串。
现在想在文章列表进行筛选,根据标签筛选出对应标签的文章
但是不能用like。SO,FIND_IN_SET函数就大显身手了
FIND_IN_SET(str,strlist)
str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8,10,22)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
倘若想搜索标签ID为2的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('2',label)
倘若想搜索标签ID为3的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('3',label)