gpt4 book ai didi

SQL WHERE、OR 和 AND

转载 作者:行者123 更新时间:2023-12-04 16:20:43 24 4
gpt4 key购买 nike

我正在尝试 SELECT来自这个数据库 WHERE要么 statement_fromusername是 = 到 $username但是这不能正常工作。我看过以前问过的类似问题,但不确定如何在此查询中实现以前的答案。

   "SELECT * FROM `usr_statements` WHERE `statement_from` = '$username' 
OR `username` = '$username' AND `statement_timestamp` > '$start_date'
AND `statement_timestamp` < '$end_date' ORDER BY `statement_ref` DESC"

我想要实现的是选择数据库中的所有结果 statement_fromusername是 = 到 $username .

最佳答案

目前您的查询是这样验证的

WHERE `statement_from` = '$username' 
OR (`username` = '$username' AND `statement_timestamp` > '$start_date')
AND `statement_timestamp` < '$end_date'

因为 AND具有比 OR 更高的优先级所以 AND将首先进行评估。

您需要添加适当的括号
SELECT * FROM `usr_statements` 
WHERE (`statement_from` = '$username'
OR `username` = '$username')
AND `statement_timestamp` > '$start_date'
AND `statement_timestamp` < '$end_date'
ORDER BY `statement_ref` DESC

您也可以使用 IN运算符(operator)按照 Jarlh 在评论中提到的方式执行此操作
SELECT * FROM `usr_statements` 
WHERE $username in (statement_from, username)
AND `statement_timestamp` > '$start_date'
AND `statement_timestamp` < '$end_date'
ORDER BY `statement_ref` DESC

关于SQL WHERE、OR 和 AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37270618/

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