如何在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。