gpt4 book ai didi

SQL Select 语句在两个列表之间

转载 作者:行者123 更新时间:2023-12-02 02:41:45 24 4
gpt4 key购买 nike

我正在尝试执行选择语句:

SELECT group_id
FROM ACCOUNT_GROUPS
WHERE account_id = '1'
AND admin_user = '0'
AND active = '1'
AND uname IN (<cfqueryparam value="#send_to_var#" cfsqltype="cf_sql_varchar" list="yes" />)
AND uname != ''

如果uname是像abc1这样的单个变量,它就可以正常工作。但现在我们需要搜索更多......

所以uname现在有一个潜在的列表,如“abc1,abc2,abc3,abc4”

现在#send_to_var#还可以包含多个变量,例如“abc3,efd6,asc9”

因此,我尝试了 CONTAINS 和其他 SQL 技术,但仍然遇到问题。

谁能提供一些建议吗?

最佳答案

如果您使用的是 SQL Server 2016,则有一个 STRING_SPLIT 函数,该函数会将 uname 列分解为一个表,您可以使用列表 cfqueryparm 进行搜索。您的查询将类似于:

SELECT group_id
FROM ACCOUNT_GROUPS
WHERE account_id = '1'
AND admin_user = '0'
AND active = '1'
AND EXISTS ( SELECT * FROM STRING_SPLIT (uname,',')
WHERE VALUE IN (<cfqueryparam value="#send_to_var#" cfsqltype="cf_sql_varchar" list="yes" />)
AND uname != ''

性能可能很糟糕 - 这被认为是糟糕的数据设计是有原因的。如果您的 SQL Server 不支持 STRING_SPLIT,还有其他解决方案,但效果可能更糟。编辑您的问题以发布您的 SQL Server 版本。

关于SQL Select 语句在两个列表之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63475982/

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