首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不工作的mysql delete查询。为什么?

问不工作的mysql delete查询。为什么?
EN

Stack Overflow用户
提问于 2011-06-16 02:46:51
回答 5查看 958关注 0票数 1

我有一个有3行的表,其中一行包含唯一的时间代码(例如: 1308162911)。有很多这样的记录,但是我想删除所有大于一天的记录(也就是86400秒)。我有这个查询,但它不起作用(什么都没有发生):

代码语言:javascript
复制
$db = mysql_connect($hostname, $db_user, $db_password);
mysql_select_db($database,$db)or die( "Unable to select database");

$now = time() - 86400;
$delete = ("DELETE FROM $tbl WHERE time > '$now'");
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-16 02:51:38

Unix时间戳随着时间的推移而增加,因此您的查询将删除24小时前的所有记录,而不是24小时前的记录。

您也可以删除时间戳值两边的单引号。

如果您仍然有问题,请包括执行mysql_query()的代码行和数据库的格式(SHOW CREATE TABLE myTable的输出)

票数 1
EN

Stack Overflow用户

发布于 2011-06-16 02:55:24

我对MySQL不太确定,但你可能需要这样的东西:

代码语言:javascript
复制
DELETE FROM $tbl WHERE DATEDIFF('$now', time) > INTERVAL 1 DAY
票数 1
EN

Stack Overflow用户

发布于 2011-06-16 02:59:45

这样如何:

代码语言:javascript
复制
$yesterday = strtotime('-1 day');

$delete = "DELETE FROM $tbl WHERE time > FROM_UNIXTIME($yesterday)";

上面的查询将删除"time“值恰好大于24小时前的所有行。假设"time“字段是TIMESTAMP、DATETIME或DATE类型。如果要删除早于一天的记录,请将>改为<。

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

https://stackoverflow.com/questions/6362715

复制
相关文章

相似问题

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