检查数据库 MySQL 中是不是存在值数组

Posted

技术标签:

【中文标题】检查数据库 MySQL 中是不是存在值数组【英文标题】:Check array of values are exist in the database MySQL检查数据库 MySQL 中是否存在值数组 【发布时间】:2019-05-10 11:26:34 【问题描述】:

我有一个数据库表 "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 值列表,我想要显示表中不存在的所有值作为最终结果?

【问题讨论】:

mysql 没有名为“list”的数据类型,所以不清楚你在问什么。 我已经更新了这个问题。请检查 【参考方案1】:

理想情况下,如果您将这些值签入表格,这会更好。然后,您可以轻松地使用这样的查询:

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);

【讨论】:

在这里,我提供了一个很长的 column2 值列表,我想要将表中不存在的所有值显示为最终结果 见上面戈登的评论。 SQL 适用于,而不是列表。【参考方案2】:

您必须创建一个临时表并插入列表中的任何内容,然后必须编写一个查询来考虑这 2 个表以找到不存在的一次。

虽然临时表会在您的会话结束后被销毁,但您仍然需要确保临时表值不会占用太多内存,从而影响您的性能

【讨论】:

以上是关于检查数据库 MySQL 中是不是存在值数组的主要内容,如果未能解决你的问题,请参考以下文章

检查 JSON 数组中是不是存在值,如果不存在则检查下一个数组(Swift / SwiftUI)

检查Java中的MySQL DB中是不是存在值?

Swift 3 + Firebase:检查数组内的值是不是存在?

打字稿:按值检查对象是不是存在于数组中

如何检查json数据数组是不是返回值

如何检查Mysql中是不是存在数组元素?