MySQL Select,其中该字段不在另一个字段的CSV列表中

时间:2018-08-08 22:37:33

标签: mysql csv

我有一张这样的桌子

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

1 个答案:

答案 0 :(得分:2)

SELECT * FROM table WHERE  NOT FIND_IN_SET(fieldA,fieldB)

您正在MySQL中寻找FIND_IN_SET

注意:已知FIND_IN_SET性能不佳。在生产环境中使用之前,请三思而后行