IN语句中不存在的MySQL值

时间:2012-11-13 20:44:59

标签: mysql subquery having

如果我的数据库的水果表包含

  1. 苹果
  2. 我的IN语句包含

    1. 苹果
    2. 香蕉
    3. 如何找到IN语句中存在但数据库中不存在的值?所以在这种情况下,返回将是香蕉。目标是在IN声明中找到拼错的结果。我尝试了一个子查询和HAVING子句,但无法让自己工作。

      编辑修复@ Xavier-Holt指出的矛盾描述

2 个答案:

答案 0 :(得分:1)

你可以写:

SELECT misspelled_fruit
  FROM (       SELECT 'pears' misspelled_fruit
         UNION SELECT 'apples'
         UNION SELECT 'bananas'
       ) t
 WHERE misspelled_fruit NOT IN ( SELECT DISTINCT fruit FROM fruits )
;

答案 1 :(得分:0)

这样的东西
SELECT * FROM MyTable WHERE Fruit NOT IN ('pears', 'apples', 'bananas')

那会返回像

这样的东西
peers
appels
bannannas