SQL 语句中的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 * from user where user_id not in (1,2,3);

等效于

select * from user where user_id != 1 and user_id != 2 and user_id != 3;

1.find_in_set基本语法

FIND_IN_SET(str,strlist)

str 要查询的字符串,strlist 字段名 参数以”,”分隔 如 (1,2,6,8)

如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

+----+---------+-----------+-------------+

| id | user_id | follow_id | follow_time |

+----+---------+-----------+-------------+

| 13 | 15      | 16,15     |  1478096138 |

| 14 | 15      | 17        |  1478177725 |

| 15 | 15      | 19        |  1478181035 |

+----+---------+-----------+-------------+

比如这张表,SELECT * from test where FIND_IN_SET('5',follow_id);这样是查不到的,返回值为null,因为follow_id中没有”5”这个值,它不同于 like 模糊查询,它是以“,”来分隔值

like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,

”分

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,448评论 0 10
  • 5月31日,一场特别的产品发布会。不是大型体育场馆,而是选择在了一个充满着小资情调的旬会所,以“媒体沟通会”的形式...
    此木无为阅读 269评论 0 0
  • 夜阑珊 凭栏杆 孤鸟归巢落日圆 独在异乡身是客 三年五载依故人 日思乡 瞭远方 望尽天涯荆棘路 两语三言夏日寒 秋...
    微心诗话阅读 248评论 0 0
  • 韵味看世界 独处是修行,感谢生命让我有机会再次学习。 变形前:紧张且灿烂的导演生活 从去年7月停止工作,开始投入人...
    韵味看世界阅读 516评论 2 2