我有一个数据库表"Mytable"
,其中包含2列("colimn1"
和"column2"
)。我还具有column1
的值列表,需要在其中与表进行交叉检查以验证值是否存在于表中。查询结果应显示列表中所有不存在的值。
例如。
Value list = ["c1","c2", "c3", "c4"]
Values in the database = C2 and C3
因此,在与数据库进行交叉检查之后,结果应为c1和c4。
我已经尝试过if条件,但是随后我必须为每一行编写单独的查询
select if(exists(select column2_val from myTable where column2_val = '3c2'), 'display when true', 'display when false');
在这里,我提供了一列column2值,并且我想要显示表中没有的所有值作为最终结果吗?
最佳答案
理想情况下,如果您要在表中检查这些值,则这样做会更好。然后,您可以轻松使用如下查询:
SELECT t1.column2_val
FROM
(
SELECT 'c1' AS column2_val UNION ALL
SELECT 'c2' UNION ALL
SELECT 'c3' UNION ALL
SELECT 'c4'
) t1
WHERE NOT EXISTS (SELECT 1 FROM myTable t2 WHERE t1.column2_val = t2.column2_val);