php - 如果特定列中有超过 X 个带有 future 日期的条目

标签 php mysql sql

我正在开发一个大学数据库,该数据库会不断更新新类(class)。

通常情况下,学生确实会在同一日期学习类(class),但我注意到某些条目的 future 日期,因此我正在考虑运行一个 sql 查询来分析特定列,以及是否发现超过 2 个条目 future 的日期(从当前的+1,格式为YYYY-MM-DD),应该使用php邮件将我邮寄出去,否则,它将回显没有找到 future 的类(class)。

我认为这可以在 SQL 查询的帮助下集成到我的 PHP 代码中,但我不太确定如何做到这一点,因此我们将不胜感激。

我想知道我当前的方法是否正确:

$sql = "SELECT publisheddate FROM lessons WHERE CONVERT(char(10), GetDate() +1,126);
$result = $conn->query($sql);
if ($result->num_rows < 2) {
    echo "2 new lessons for tomorrow";
}
} else {
    echo "0 future lessons";

最佳答案

您的 where 子句需要指示您将转换后的日期与哪一列进行比较。此外,您可能最好从数据库中返回 count(*) 行,而不是将所有行返回到 PHP 脚本,然后让 PHP 对其进行计数。如果明天碰巧有一百万个类(class)(或者学校不小心在数据库中重复了一个类(class)一百万次......),您的脚本将不得不等待通过网络接收一百万行,而不是单个整数.

尝试这样的 SQL 语句(您已经指出 publisheddatedate 数据类型,因此我不会费心将其转换为日期):

SELECT 
    count(*) 
FROM 
    lessons 
WHERE 
    publisheddate = DATE_ADD(CURDATE(), INTERVAL +1 DAY)

这将返回一个整数,表示有多少行符合该条件,您的 PHP 脚本可以使用该整数。

关于php - 如果特定列中有超过 X 个带有 future 日期的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52280756/

相关文章:

php - 什么是从 mysql 查询返回多行的 PHP 函数?

mySQL 查询将团队 ID 更改为团队名称并将 not null 设为空白

php - 如何解析表1到表2的数据

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 如何在不浪费内存的情况下在 PHP 中构建大型 MySQL INSERT 查询

php - 我可以将值发布到 MySQL 并同时在 Bootstrap Modal 上查看它吗?

mysql - MySQL 有聚合 ST_UNION() 吗?

mysql - 我可以对未映射到表的实体使用 hibernate 查询语言吗?

sql - 在SQLite中找到几个MAX值

php - 在codeigniter中如何使用ajax登录后重定向