mysql 中find_in_set()和in()用法比较
mysql 中find_in_set()和in()用法比较 在mysql中in可以包括指定的数字,而find_in_set()用于特定的数据类型。 find_in_set 函数使用方法 个例子来说: select * from article where FIND_IN_SET('4',type) MySQL手册中find_in_set函数的语法: FIND_IN_SET(str,strlist) 假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 mysql> SELECT FIND_IN_SET('b','a,b,c,d'); -> 2 因为b 在strlist集合中放在2的位置 从1开始 select FIND_IN_SET('1','1'); 返回 就是1 这时候的strlist集合有点特殊 只有一个字符串 其实就是要求前一个字符串 一定要在后一个字符串集合中 才返回 大于0的数 select FIND_IN_SET('2','1,2'); 返回2 注意: select * from treenodes where FIND_IN_SET(id,'1,2,4,5'); 使用find_in_set函数一次返回多条记录 select * from treenodes where id in (1,5); 弄个测试表来说明两者的区别 CREATE TABLE `test` ( INSERT INTO `test` VALUES (1,'name','daodao,www.111cn.net,xiaoqin'); 原来以为MySQL可以进行这样的查询: select id,list,name from table where 'daodao' IN (list); (一) select id,name from table where 'daodao' IN ('libk','zyfon','daodao'); (二) select id,name from table where find_in_set('daodao',list); (一)的改进版。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |