用find_in_set() 查询: 1 SELECT userid,username,userrole 角色 FROM `user` WHERE find_in_set('2',userrole) 结果: 显然用 find_in_set() 查询得到的结果才是我们想要的结果。所以他俩的 主要的区别就是like是广泛的模糊查询;而 find_in_set() 是精确匹配,并且字段值之间用
like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。
2.1 FIND_IN_SET 的应用场景 FIND_IN_SET通常用于查找以逗号分隔的数据。例如,假设我们有一个用户表,其中的字段tags是一个以逗号分隔的标签字符串,我们可以用FIND_IN_SET来检查某个标签是否在列表中。 SELECT*FROMusersWHEREFIND_IN_SET('python',tags)>0; 1. 2. 3. 2.2 LIKE 的应用场景 LIKE操作符更为...
在性能上,FIND_IN_SET通常会比LIKE更有效。当使用FIND_IN_SET时,MySQL直接在字符串列表中查找指定的字符串,而LIKE则会进行模式匹配,并可能会导致全表扫描,尤其是在没有索引的情况下。 以下是一个简单的表格,展示了FIND_IN_SET与LIKE的执行情况: 2. 使用场景 FIND_IN_SET:适合在字段中存储一组特定值的情况,...
面试官让我匹配下 #白色 的所有数据,我当时第一反应就是通过 like 来处理,然后他说还有没有别的方法。 我想了下就说 find_in_set但是它的配置值必须要是用逗号隔开,所以应该不满足。后面这个问题确实困扰了我,我就各种查找有效的方法,今天就总结下,MySQL的模糊查询,以后的多扩展下自己的思路,多尝试其他的方式...
注意:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。 总结:like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。
作为Comate,很高兴帮助你解答关于FIND_IN_SET和LIKE在MySQL中的效率对比问题。下面我将根据你的提示逐一阐述: 1. FIND_IN_SET函数的基本用法和适用场景 FIND_IN_SET函数用于查找一个字符串在一个逗号分隔的字符串列表中的位置(索引从1开始)。如果找到,则返回该字符串在列表中的位置;如果未找到,则返回0。其基本...
mysql 语句中的in、find_in_set、like的区别 1.in查询相当于多个or条件的叠加,例如: select * from user where user_id in (1,2,3); 等效于 select * from user where user_id = 1 or user_id = 2 or user_id = 3; not in与in相反,如下...
SELECT id,name,list from test1 WHERE list in('篮球','足球'); #-- 返回list字段内容只是篮球 或 足球的数据 SELECT id,name,list from test1 WHERE find_in_set('篮球',list); #-- 返回list字段内容中包含了篮球的数据 4.find_in_set()和like的应用场景区别 在mysql中,有时我们在做数据库查询时...
1.IN和FIND_IN_SET的区别:SELECTdept_id, parent_id, ancestors, order_num, leader, phoneFROMsys_deptWHERE101IN(101,102) ; in后面只能跟常量, 如果跟字符串的话,就会和字符串的值进行完全匹配,所以上面的sql查询不到记录。 但是find_in_set()函数可以使用常量或字段。2.like和FIND_IN_SET的区别:SELECT...