gpt4 book ai didi

php - 当 OR 查询失败时确定记录的实际值

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

我有一个可以正确运行的简单查询,但需要检查的条件很少。这是使用 AND 运算符完成的,我想知道当 OR 条件失败时我们如何确定实际值。

场景:我们有 3 列 is_blocked、is_verified、is_active假设第 1 行有

is_blocked=0
is_verified=0
is_active=0

当每个条件失败时,抛出的消息必须不同。

if (is_blocked==1) msg=your account has been blocked.
if (is_active==0) msg=your account is no longer active.
if (is_verified==0) msg=you need to verify your account.

查询 1:

"
SELECT *
from users
WHERE is_blocked = 0
AND is_verified = 1
AND is_active = 0
AND emailid = 'emailid'
"

对于上述示例,上述查询将返回 FALSE 值。有没有办法让我通过单个查询找出查询中的哪个条件失败以及实际值是什么。所以预期的输出将是 is_verified=1

我尝试过在 PHP 中使用 if 条件,如下所示。

if (is_blocked=0) 
SELECT * from users users WHERE is_verified=1 AND is_active=1

等等...我不确定这是否是一个好的做法。

最佳答案

使用CASE表达式:

SELECT CASE 
WHEN is_blocked = 1 THEN 'your account has been blocked'
WHEN is_active = 0 THEN 'your account is no longer active'
WHEN is_verified = 0 THEN 'you need to verify your account'
END AS reason
from users
WHERE emailid = 'emailid'

关于php - 当 OR 查询失败时确定记录的实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56189215/

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