一般来说,在小型数据集上,两者的差异可能不明显,但随着数据集的增大,FIND_IN_SET的性能优势会愈加明显。 结果展示 假设在一个数据量较大的表中进行如下查询,将会发现FIND_IN_SET性能优于LIKE。 EXPLAINSELECT*FROMusersWHEREFIND_IN_SET('admin',roles);EXPLAINSELECT*FROMusersWHERErolesLIKE'%admin%'; 1. 2....
在性能上,FIND_IN_SET和LIKE有所不同。FIND_IN_SET在处理较小的数据集时表现良好,但对于较大的数据集,它的性能会下降,因为它需要遍历整个字符串。而LIKE使用索引时性能较好,特别是当使用%通配符在开头时,会导致全表扫描,因此在设计数据库时应尽量避免。 3. 代码示例 下面是一个示例数据库和表的状态: CREATET...
select * from af_archive where concat(',',EditUserIDArr,',') like CONCAT('%,','6',',%') and CreateUserID=10 order by CreateTime desc limit 11,20; -- 方式一设计用 FIND_IN_SET查了几次时间分别是: 1.441s 1.336s 1.214s 1.116s select * from af_archive where FIND_IN_SET('6',...
strList中间的值必须以,分隔 当某个字段为NULL时,无论FIND_IN_SET()条件是何种查询条件,字段有为NULL的记录都符合 三者区别 like是广泛的模糊匹配,字符串中没有分隔符 IN 后面是变量,且是模糊查询 Find_IN_SET 是精确匹配,字段值必须以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果 --- 版权声...
mysql中FIND_IN_SET和like的区别 简介:在数据库中新建一张测试表t_user,包含三个字段'id','name','grilfriend',字段很容易看出,这是记录一个人的女朋友的表,注意这里的‘firlfriend’字段可以是多个人名,之间用逗号分开,如‘杨幂01,杨幂02’;这样的数据存储我们也经常见到。
MySQL中INSTR函数的用法INSTR(字段名,字符串)这个函数返回字符串在某一个字段的内容中的位置,没有找到字符串返回0,否则返回位置(从1开始)我们以users表为例:我们的目的,使用INSTR来代替LIKE执行查询,查询userid中包含2的。 图1所示,我们使用LIKE来进行模糊查询,这样查询根本达不到我们的效果: 图2所示,我们用INSTR...
FIND_IN_SET(str,strlist)函数 它不同于 like 模糊查询,它是以“,”来分隔值 str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 查询字段(strlist)中包含(str)的结果,返回结果为null或记录 FIND_IN_SET和like的区别 like是广泛的...mysql...
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相反,如下 ...
FIND_IN_SET(str,strlist)函数——查询字段(strlist)中包含(str)的结果,返回结果为null或记录,经常作为where的条件。 SELECT ...
⼤家都知道mysql 模糊查询的常⽤⽅法是LIKE 但这个语句查询效率很慢,那么有没有⽐较好的⽅法呢,下⾯本⼈测试了⼏个语句 测试数据800条左右 1,测试结果⽤时0.06s 2 locate()⽤时0.02s 3 find_in_set() ⽤时0.02s 4 instr instr() ⽤时0.03 根据本⼈测试结果可能数据量不太够 ...