如何解决Mysql通过time的差异删除
| 我想删除时差为5分钟的每一行。我正在使用time()作为整数。mysql_query(\"DELETE FROM users WHERE time()-time > 300\");
查询是问题...
解决方法
time()
是PHP函数-在SQL中绝对没有意义。
您应该:
使用MySQL的datetime函数之一
为了获得UNIX时间戳,我想使用unix_timestamp(now())
可以解决问题。
或从SQL查询中获得time()
,因此它由PHP评估。
例如,使用第二个想法,我想您可以执行以下操作:
mysql_query(\"DELETE FROM users WHERE \" . time() . \"-time > 300\");
,假设时间是用户表中的一列,则需要以下内容:
mysql_query(\"DELETE FROM users WHERE NOW() - INTERVAL 300 SECOND > time\");
NOW()是一种可以使数据库服务器(而不是Web服务器)上的时间恢复的函数。
只需确保数据库服务器和Web服务器上的时钟已同步
这是使用SELECT的示例
mysql> select now(),(now() - INTERVAL 300 SECOND);
+---------------------+-------------------------------+
| now() | (now() - INTERVAL 300 SECOND) |
+---------------------+-------------------------------+
| 2011-04-15 16:21:41 | 2011-04-15 16:16:41 |
+---------------------+-------------------------------+
,mysql_query(\“删除用户的时间<\'\”。(time()-300)。\“ \'\”);
这个查询将被mysql缓存
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。