gpt4 book ai didi

mysql - 如何传递一个数组并选择该数组中不在表内的元素

转载 作者:行者123 更新时间:2023-11-29 16:08:44 26 4
gpt4 key购买 nike

我有一个字符串数组,它是 ["a1","a2","a3"] 并希望将此数组传递到查询中。

目的不是从数据库中选择该数组中或不在该数组中的元素,而是选择该数组中不在数据库内的元素。

假设有一个表

create table table1(
id int primary key not null,
name text
);

在table1旁边,它可能有[1,"a1"],[2,"a2"],[3,"b3"],[11,"str2"],[14,"加利福尼亚"],[15,"美国"],[16 ,“澳大利亚”]

当我将数组[“a1”,“a2”,“a3”]传递到查询中时,它可以发现元素“a3”不在table1内,因为可以找到“a1”和“a2”,但是“a3”不能。

我想到了一个可能的解决方案,用sql编写,但似乎我无法写出查询

我的想法是

 select [something] from [an array](/*this is something I passed from java or golang*/) 
where [something] not in (select column from a table)

我的想法是,从表中选择列是一个集合,数组也是一个集合,但是当写入查询时,我停留在那里

我只是想知道我是否可以组织查询并将该位置保留为“?”如果我将该数组传递给 ?,它将找到数组内但不在表内的元素。

最佳答案

这里最好的做法是使用像这样的表函数:

T-SQL split string

然后以逗号分隔字符串的形式将数组传递给查询。

例如:

SELECT name FROM dbo.mySplitFunction('a1,a2,13') WHERE name NOT IN (SELECT DISTINCT myField FROM myTable)

关于mysql - 如何传递一个数组并选择该数组中不在表内的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55487076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com