我有一个表,其中包含CSV值作为列。我想在where子句中使用该列来比较是否存在CSV子集。例如,表的值如下
1| 'A,B,C,D,E'
询问:
从其中csv_column包含'A,C'的标签中选择ID ;
该查询应返回1。
如何在SQL中实现呢?
您可以使用来处理此问题LIKE
,请确保为要匹配的每个字母/子字符串搜索三种类型的模式:
SELECT id
FROM yourTable
WHERE (csv_column LIKE 'A,%' OR csv_column LIKE '%,A,%' OR csv_column LIKE '%,A')
AND
(csv_column LIKE 'C,%' OR csv_column LIKE '%,C,%' OR csv_column LIKE '%,C')
注意,匹配的子串A
的装置,要么A,
,,A,
或,A
出现在CSV列。
我们还可以使用INSTR()
代替编写结构类似的查询LIKE
,甚至可以比使用通配符提高性能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句