gpt4 book ai didi

SQLITE3 复合 "Select"语句

转载 作者:行者123 更新时间:2023-12-03 18:31:01 26 4
gpt4 key购买 nike

我有一张有几列的 table 。第 1 列和第 2 列可以包含四个 alpha 值中的任何一个:set={A,B,C,D}。

我想检查每列是否包含集合中的两个值之一。所以我想简化这个陈述:

SELECT * FROM MUTATION-TABLE WHERE (COLUMN1 = "A") OR (COLUMN2 = "A") OR (COLUMN3 = "A")
OR (COLUMN1 = "B") OR (COLUMN2 = "B") OR (COLUMN3 = "B").

有没有办法简化这个语句。随着我添加更多列,将有更多突变需要检查。我可以看到 SQL 语句变长/重复。

最佳答案

如果您只有两个值但有很多列,则切换到 IN并检查一组列中的常量值:

SELECT *
FROM "MUTATION-TABLE"
WHERE 'A' IN (COLUMN1, COLUMN2, COLUMN3)
OR 'B' IN (COLUMN1, COLUMN2, COLUMN3)

还有更多列:
SELECT *
FROM "MUTATION-TABLE"
WHERE 'A' IN (COLUMN1, COLUMN2, COLUMN3, COLUMN4, COLUMN5)
OR 'B' IN (COLUMN1, COLUMN2, COLUMN3, COLUMN4, COLUMN5)

就数据库而言,查询应该是相同的,但这个版本可能更具可读性。

关于SQLITE3 复合 "Select"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8697216/

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