检查数据库 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)