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



如何在MySQL中做到这一点

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

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

提前谢谢。

检查"一列"中的任何值是否存在于"另一个表"的"另一列"中。

使用存在

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

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

使用 IN()

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

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

最新更新