我的 MySQL 服务器上有这个表:
id name url type ut lastcheck
1 Name1 url1 1 5 2011-06-28 12:21:46
2 Name2 url2 1 10 2011-06-28 12:21:46
3 Name3 url3 1 12 2011-06-28 12:21:46
4 Name4 url4 1 1 2011-06-28 12:21:46
ut 表示更新时间,以分钟为单位。我想使用 MySQL 命令开发一个脚本,该脚本仅检索提示此语句的元素:
NOW() - 最后检查=>ut
我正在使用 php 进行开发,我知道如何检索所有元素,然后使用简单的 php 操作来过滤我需要的元素,但我不想再加载任何元素我的剧本。所以我希望我的 MySQL 服务器完成所有工作,但我不知道如何构建 SQL 查询来执行此操作。
我知道MYSQL可以使用SELECT TIMEDIFF(NOW(), '2010-11-26 12:00:00');
来区分日期例如。
最佳答案
如果我理解正确的话,您需要选择自上次检查以来的分钟数大于 ut 的行?
您应该能够使用 TIMESTAMPDIFF
命令来实现:
SELECT * FROM table WHERE ut < TIMESTAMPDIFF(MINUTE,lastcheck,NOW());
TIMESTAMPDIFF
命令允许您指定希望输出的单位,以便它准确地为您提供所需的内容。
关于php - 从 MySQL 数据库检索项目,但首先使用一些数学规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6506148/