php - MYSQL 基于 future 的日期进行选择,产生重复的、不可预测的结果

标签 php mysql

我有一个查询,该查询应该从一个表中获取数值(天数),将该值添加到当前日期,然后将该日期与另一个表中的日期行进行比较,并返回每个用户 ID 和匹配的事件 ID。 (本质上,人们设置提醒在某个事件发生前 X 天发出,我们正在尝试运行查询来查看每天需要在 cronjob 中发出哪些提醒。希望这是有道理的。)

不幸的是,我知道我只是错过了一些东西。一方面,查询返回双倍的结果集,并且显然是错误的结果(它正在拉取一天后的事件)。我绝对已经掌握了这方面的知识,并且可以从更了解的人那里得到一些帮助。

  • Users_Notifications.Alert 是提醒用户的事件发生前的天数
  • Events_Root.EventDate 是事件发生的日期。

    SELECT * FROM `Users_Notifications`, `Events_Root` WHERE 
    DATE( DATE_ADD( NOW(), INTERVAL Users_Notifications.Alert DAY ) ) 
        = DATE( Events_Root.EventDate );
    

表定义如下:

  • Users_Notifications:ID、User_ID、Event_ID、警报
  • Events_Root:ID、名称、事件日期

最佳答案

NOW() 函数使用本地时区。确保您的服务器上的时区正确。

关于php - MYSQL 基于 future 的日期进行选择,产生重复的、不可预测的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20939104/

相关文章:

php - 查询语法中的 MySQL REGEX

php - 查询表 "idauthdata"时未提供列 "authdata"的值

MySQL 触发器需要调整

php - 无法将表单数据插入数据库(MySQLIi)

sql - MySQL - 不使用索引

mysql - Spring Boot 的数据源错误

mysql - Hadoop-配置HUE时没有主机路由

php - 以安全的方式向服务器发送密码

php - php脚本中的内存泄漏

php - 从 MySQL 数据库创建复选框,然后回显选择