如何选择列表中但不在表格中的项目?例如,如果给我一个像'apple', 'banana', 'carrot'
这样的列表,我有一个像:
fruit:
------
apple
banana
我希望我的查询结果为'carrot'
,因为它是列表中不存在的列表中的元素。我该怎么做?
答案 0 :(得分:4)
实现此目的的最佳方法是将列表放在表格中:
Table fruitable:
fruit
------
apple
banana
Table fruitable_list:
fruit
------
apple
banana
carrot
然后您的查询变为:
SELECT fruitable_list.fruit FROM fruitable_list
LEFT JOIN fruitable
ON fruitable.fruit = fruitable_list.fruit
WHERE fruitable.fruit IS NULL
结果:
fruit
------
carrot
很难在结果集中返回不在数据集中的记录。
答案 1 :(得分:3)
SELECT v.fruit FROM (
SELECT 'apple' AS fruit
UNION ALL
SELECT 'banana'
UNION ALL
SELECT 'carrot') v
LEFT JOIN friuttable ft ON ft.fruit = v.fruit
WHERE ft.fruit IS NULL
<击> 另:击>
<击>SELECT fruit
FROM fruittable
WHERE FIND_IN_SET(fruit, 'apple,banana,carrot') = 0
击> <击> 撞击>