gpt4 book ai didi

mysql - SQL查询过滤问题

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

我的查询过滤器未返回正确的数据...这是为了提取网站主页列表的新闻文章。我有一个名为 HideFromHome ( bool 值)的字段,我正在尝试过滤该字段,以及发布和删除日期:

$today=date('Y-m-d');   
$filter = "HideFromHome != 1 AND ";
$filter .= "((PublishDate <= '".$today."') AND (RemoveDate > '".$today."')) OR ";
$filter .= "((PublishDate IS NULL AND RemoveDate > '".$today."')) OR ";
$filter .= "((PublishDate <= '".$today."' AND RemoveDate IS NULL)) OR ";
$filter .= "((PublishDate IS NULL AND RemoveDate IS NULL))";

一切正常,除了返回所有文章,即使选择了 HideFromHome...任何人都可以发现问题吗?

最佳答案

您需要更多括号。每个“OR”与第一个“AND”处于同一级别尝试:

$today=date('Y-m-d');   
$filter = "HideFromHome != 1 AND (";
$filter .= "((PublishDate <= '".$today."') AND (RemoveDate > '".$today."')) OR ";
$filter .= "((PublishDate IS NULL AND RemoveDate > '".$today."')) OR ";
$filter .= "((PublishDate <= '".$today."' AND RemoveDate IS NULL)) OR ";
$filter .= "((PublishDate IS NULL AND RemoveDate IS NULL)))";

正如 H-Man2 的答案所解释的,FALSE AND TRUE OR TRUETRUE

关于mysql - SQL查询过滤问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737059/

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