我有一张这样的桌子
fieldA | fieldB
-----------------
a | a,b,c
-----------------
b | a,c
-----------------
c | x,y,z
其中fieldA是字符串,而fieldB是CSV列表。
我需要构建一个查询,该查询的功能类似于我希望从该查询中获取的内容:
SELECT * FROM table WHERE fieldA NOT IN fieldB
(将选择fieldA是否不在fieldB的CSV列表中)
或劣等但可用的查询可能是这样的:
SELECT * FROM table WHERE fieldA NOT LIKE%fieldB%
(将选择fieldA是否不是fieldB的子字符串)
结果将是这样的:
fieldA | fieldB
-----------------
b | a,c
-----------------
c | x,y,z
答案 0 :(得分:2)
SELECT * FROM table WHERE NOT FIND_IN_SET(fieldA,fieldB)
您正在MySQL中寻找FIND_IN_SET。
注意:已知FIND_IN_SET性能不佳。在生产环境中使用之前,请三思而后行