gpt4 book ai didi

mysql - 检查复杂sql查询语句中哪个条件失败

转载 作者:行者123 更新时间:2023-11-30 22:54:35 25 4
gpt4 key购买 nike

我想知道SQL查询的where子句在哪个条件下失败。
例如我有以下声明

SELECT * from Users where status != 'inactive'
AND ptype != 'test' AND ptype != 'test1'
AND (p_name NOT IN ('ptest', 'ptest0', 'ptest1', 'ptest2') OR p_name IS NULL)
AND (p_m_c NOT LIKE '%pmcestt%'
OR (ptype LIKE 'SomeOthertest%' AND p_m_c IS NULL)
OR (TType = 'Broad' AND p_m_c IS NULL)
OR p_m_c IN ('pmctest', 'pmctest0', 'pmctest1', 'pmctest2', 'pmctest3',
'pmctest4', 'pmctest5', 'pmctest6', 'pmctest7', 'pmctest8'))

我如何知道哪个条件失败,并获取该条件?

最佳答案

如果您想检查条件,您必须将 WHERE 子句中的条件语句移动到 SELECT 列表中的每个条件的 CASE 语句,除了表 Users 的列。

SELECT *,
CASE WHEN status !='inactive' THEN 1 else 0 end as statusTag,
CASE WHEN ptype !='test' THEN 1 ELSE 0 end as ptypeTag,
.
.
CASE WHEN p_m_c IN ('pmctest', 'pmctest0', 'pmctest1', 'pmctest2', 'pmctest3',
'pmctest4', 'pmctest5', 'pmctest6', 'pmctest7', 'pmctest8') THEN 1 else 0 end as p_m_cTag

FROM Users

这将为每个表行生成列列表,如果满足条件则为值 1,如果该特定行的条件为假则为 0。

关于mysql - 检查复杂sql查询语句中哪个条件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26987585/

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