gpt4 book ai didi

mysql - 使用 where 子句进行查询,检查具有多个值的变量

转载 作者:行者123 更新时间:2023-11-29 09:55:11 27 4
gpt4 key购买 nike

场景:我正在尝试创建一个查询,以便从表中检索多个值。通过直接列出值来做到这一点很简单,如下所示:

select * from product.text_data
where text_data.field_label = "Owner" or text_data.field_label = "Admin" or text_data.field_label = "Rule";

问题:是否可以执行相同的查询,但将字段列表输入到变量中,然后直接检查该变量?

例如:

set @idlist1 = ("Owner", "Admin", "Rule");
select * from product.text_data
where product.text_data.field_ref in @idlist1;

问题:如果我尝试运行它,我会得到

SQL Error (1241): Operand should contain 1 column(s)

最佳答案

无法将列表定义为变量。您必须将变量声明为临时表。

在您的用例中,您似乎正在寻找动态 sql。

declare @myList varchar(100)
set @myList = '( "Owner", "Admin", "Rule" )'
exec('SELECT * FROM product.text_data WHERE product.text_data.field_ref IN' + @myList)

关于mysql - 使用 where 子句进行查询,检查具有多个值的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53971159/

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