gpt4 book ai didi

php - 使用 PHP 的 MySQL 查询中的 If 语句

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

是否可以像我展示的那样在 MySQL 查询中使用 if 语句?我想获取一些即将发生的事件的信息(不是之前日期的事件)。

ini_set('date.timezone', 'America/New_York');
echo $timestamp = date('Y-m-d');
$sql = "select eventID,eventTitle,eventDate from events where eventLocationID = $locationID AND (eventDate > $timestamp) ORDER BY eventDate ASC";

编辑 - sql 语句不会过滤掉今天之前的日期(它会显示所有内容)。

例如,我回显时间戳只是为了确保它设置正确。在我的表中,我输入了两个日期,一个在一月,一个在今天。

这是输出

  2012-05-31 //timestamp, not part of results. just for reference
2012-01-10 //first result, however it shouldn't display
2012-06-22 //this should be the only result that displays

最佳答案

只需使用一个 where 子句:

$date = date('Y-m-d');
$sql = "
SELECT
foo
FROM
bar
WHERE
eventLocationId = ...
AND eventDate > '$date'
ORDER BY
eventDate DESC
";

此外,m/d/Y 不是 MySQL 的有效日期格式。它需要 Y-m-d


关于与您的问题没有直接关系的注释:

I really want to avoid doing post-query if statements

如果您在 PHP 中过滤结果集,它会比使用 where 子句慢很多倍。数据库用于快速有效地过滤记录。而且,在 PHP 中进行过滤需要您实际将所有结果从 MySQL 传输到 PHP(另一个减慢速度)。

关于php - 使用 PHP 的 MySQL 查询中的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842204/

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