我发现find_in_set只通过一个字符串进行搜索:-

find_in_set('a', 'a,b,c,d')

在上面的示例中,"a"是用于搜索的唯一字符串.

有没有办法使用find_in_set之类的功能并通过多个字符串进行搜索,比如:-

find_in_set('a,b,c', 'a,b,c,d')

在上面的例子中,我想通过三个字符串"a,b,c"进行搜索.

我看到的一个方法是使用OR

find_in_set('a', 'a,b,c,d') OR find_in_set('b', 'a,b,c,d') OR find_in_set('b', 'a,b,c,d')

还有别的办法吗?

推荐答案

没有本机函数可以实现这一点,但您可以使用以下技巧实现您的目标

WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"

Mysql相关问答推荐

MariaDB /SQL僵局-并发插入

SQL中的搜索模式

不分组寻呼

从insert语句获取新生成的虚拟UUID

实体内约束的唯一增量 ID 生成

基于其列之一内的值查询模型

SQL使用LIMIT获取结果和结果中的行数

mysql数据库数据文件夹中的DESKTOP-7JFP5MF-bin.000001文件有什么用?

判断一列中的多个值并返回值 1 或 0

SQL / MySQL:如何在WHERE IN中判断类似于OR的AND逻辑

Select 在同一天售出不同活动门票的收银员

MySQL按连续值和计数分组

sql sum - 处理连接表中的脏重复项

避免重复进入mysql数据库的最佳方法

减少mysql中的值但不是负数

MySQL - 如何在 INSERT 语句中将字符串值解析为 DATETIME 格式?

如何在sequelize中定义多列的唯一索引

MySQL获取两个值之间的随机值

MySQL - 重复表

在 MySQL Workbench 中导出超过 1000 条记录的查询结果