首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql delete by difference in time()

Mysql delete by difference in time()
EN

Stack Overflow用户
提问于 2011-04-16 04:16:06
回答 3查看 535关注 0票数 3

我想删除时差为5分钟的每一行。我使用time()作为int。

代码语言:javascript
复制
mysql_query("DELETE FROM users WHERE time()-time > 300");

查询就是问题所在...

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-16 04:17:41

是一个PHP函数--在SQL中完全没有意义。

您应该:

  • 使用MySQL的datetime functions
    • 之一来获取UNIX时间戳,我认为unix_timestamp(now())可能会执行trick.

从SQL查询中获取

  • time(),所以它是由PHP进行计算的。

例如,使用第二个想法,我想你可以这样做:

代码语言:javascript
复制
mysql_query("DELETE FROM users WHERE " . time() . "-time > 300");
票数 5
EN

Stack Overflow用户

发布于 2011-04-16 04:19:47

假设时间是users表中的一列,这是您需要的:

代码语言:javascript
复制
mysql_query("DELETE FROM users WHERE NOW() - INTERVAL 300 SECOND > time");

NOW()是一个在DB服务器而不是web服务器上返回时间的函数。

只需确保DB服务器和Web服务器上的时钟是同步的

下面是一个使用SELECT的示例

代码语言:javascript
复制
mysql> select now(),(now() - INTERVAL 300 SECOND);
+---------------------+-------------------------------+
| now()               | (now() - INTERVAL 300 SECOND) |
+---------------------+-------------------------------+
| 2011-04-15 16:21:41 | 2011-04-15 16:16:41           |
+---------------------+-------------------------------+
票数 4
EN

Stack Overflow用户

发布于 2011-04-16 04:21:52

Mysql_query(“从用户中删除时间< '".( time ()-300)."‘");

并且此查询将由mysql缓存

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5681925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档