gpt4 book ai didi

php - MySQL IF in WHERE 条件基于 SELECT 列

转载 作者:行者123 更新时间:2023-12-01 00:11:56 24 4
gpt4 key购买 nike

我有这个简单的(实际上我正在简化实际情况)SQL 命令:

SELECT Username, Message
FROM Mail
WHERE DeleteBySender = '0'
LIMIT 1

但由于某些原因,我有一个特殊的条件,那就是:IF Mail.Username = 'johndoe' 那么 WHERE 子句不再是 DeleteBySender = '0'但是 DeleteByReceiver = '0'

简而言之,如何根据 Mail.Username 结果创建动态 WHERE 子句?

可以用一条SQL命令完成吗?因为如果不这样做,在我的真实情况下,它会导致 PHP 脚本更加复杂。

**更新:我真正期待的,用简单的英语:如果 Mail.Username 不是 johndoe,SQL 命令将是这样的:

SELECT Username, Message
FROM Mail
WHERE DeleteBySender = '0'
LIMIT 1

但是如果 Mail.Username 是 johndoe,SQL 命令将是这样的:

SELECT Username, Message
FROM Mail
WHERE DeleteByReceiver = '0'
LIMIT 1

最佳答案

SQL 中的一个解决方案,利用 OR 子句分解您的逻辑,如下所示:

SELECT Username, Message
FROM Mail
WHERE (Username != 'johndoe' AND DeleteBySender = '0')
OR (Username = 'johndoe' AND DeleteByReceiver = '0')
LIMIT 1

注意: LIMIT 1 令人担忧。在不知道您的数据集的情况下,这可能会返回多个结果。你需要测试。

关于php - MySQL IF in WHERE 条件基于 SELECT 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14509302/

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