一尘不染

MySQL find_in_set与多个搜索字符串

mysql

我发现 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')

除此之外,还有其他方法吗?


阅读 1102

收藏
2020-05-17

共1个答案

一尘不染

没有本机函数可以执行此操作,但是您可以使用以下技巧来实现目标

WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"
2020-05-17