用于一次检查多个值的MySQL语法查询

时间:2017-11-02 16:33:13

标签: mysql database

如何在MySQL中完成这项工作

select (3,5) not in (5,9,8);

它应该返回0,因为5在(5,9,8)中。

提前致谢。

1 个答案:

答案 0 :(得分:0)

检查"一列中是否有任何值"存在于"另一列" "另一张桌"。

使用EXISTS

SELECT
      one_column
FROM one_table t1
WHERE EXISTS (
      SELECT NULL
      FROM another_table t2
      WHERE t1.one_column = t2.another_column
      )
;

请注意,在上面的示例中,子查询select子句不需要返回任何值,因为"检查是否存在"发生在该子查询的where子句中。然而,正确的语法需要一个select子句,但实际上它只是装饰性的(所以"选择1"或者"选择*"可以用来代替"选择null& #34;。)

使用IN()

SELECT
      one_column
FROM one_table
WHERE one_column IN (
      SELECT another_column
      FROM another_table
      )
;

此子查询中的select子句必须返回值以进行比较。如果使用IN(),请注意返回NULL。