我发现find_in_set只搜索一个字符串: -
find_in_set('a', 'a,b,c,d')
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,'a'是用于搜索的唯一字符串.
有没有办法使用find_in_set类型的功能并通过多个字符串搜索,如: -
find_in_set('a,b,c', 'a,b,c,d')
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我想通过三个字符串'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')
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?
Pav*_*nov 102
没有原生功能,但你可以使用以下技巧实现你的目标
WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"
Run Code Online (Sandbox Code Playgroud)
Dmi*_*mov 14
MySQL函数find_in_set()只能搜索一组字符串中的一个字符串.
第一个参数是一个字符串,所以没有办法让它将逗号分隔的字符串解析成字符串(你根本不能在SET元素中使用逗号!).第二个参数是一个SET,它反过来用逗号分隔的字符串表示,因此你的希望find_in_set('a,b,c', 'a,b,c,d')工作正常,但它肯定无法'a,b,c'在任何SET中找到一个字符串- 它包含逗号.
| 归档时间: |
|
| 查看次数: |
47565 次 |
| 最近记录: |