我正在搜索字符串中的特定值,该字符串中的每个值都指定一个看起来像这样的子句
K1,K2,K3,K114,K22,K110,...
标准结果
假设我想搜索拥有 K1 的人 当我在 where 部分使用以下过滤器时
where q2.klause like '%K1%'
它会让所有拥有 k1 的人得到我,但是如果有人拥有 K11 而没有 K1,它也会添加它,这不是我想要的!
所以我尝试了这种方法
where q2.klause like '%K1'
可悲的是,它也不起作用,因为它只会让只有 K1 的人,没有条款不共享。
我想要任何拥有 K1 的人,无论他们有/没有其他 klauses !
UIDs Klause
6548 K1,K35,K37,K4
48 K1,K34
486 K1,K14
8974 K1
456568 K11,K12,K2
8814 K2,K14,K34
6248 K14,K2
2236 K1,K35,K37,K4
547 K2
397812 K2
586 K2,K11
1358 K1,K13,K14
5856 K1,K14
9872 K1,K14
64789 K1,K14
22344 K1,K14,K35,K37
4788 K1,K14
4587 K1,K14,K35,K37
14561 K11,K12,K14,K2
232156 K1,K14
156 K1,K114
475 K11,K12,K14,K2
45645 K13,K14
456454 K13,K14
在这种情况下,有 14 个人拥有 K1。这是需要的最终答案!请注意,这也应该与其他克劳斯一起完成。
最佳答案
使用正则表达式:
WHERE q2.klause ~ '\mk1\M'
\m
匹配单词的开头,\M
匹配单词的结尾。
关于sql - 如何筛选结果以查找特定的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57676313/