Mysql 此sql似乎删除了字段大于0的所有行
因此,基本上,我试图在我的销售页面上获得一个自动到期,我有这个sqlMysql 此sql似乎删除了字段大于0的所有行,mysql,sql,Mysql,Sql,因此,基本上,我试图在我的销售页面上获得一个自动到期,我有这个sql DELETE FROM `game_sales` WHERE `expires` <= NOW() AND `expires` > 0 删除 来自“游戏销售” 其中`expires`0 它似乎会删除expires>0的所有行,而不管expires是否低于当前时间 如何停止此操作?您的SQL查询只选择数据,不删除数据。 WHERE条件返回与这两个条件匹配的数据,因此我将查找expires
DELETE
FROM `game_sales`
WHERE `expires` <= NOW()
AND `expires` > 0
删除
来自“游戏销售”
其中`expires`0
它似乎会删除expires>0
的所有行,而不管expires
是否低于当前时间
如何停止此操作?您的SQL查询只选择数据,不删除数据。 WHERE条件返回与这两个条件匹配的数据,因此我将查找expires
expires
给出过期日期正好在现在之前的所有条目
及
expires>0
提供大于0的所有过期值
编辑:
用整数时间你已经有问题了。
NOW()
返回datetime
数据类型中的值。
与int相比,它应该比较时间的毫秒值
您是否以毫秒为单位存储了时间?您的SQL查询只选择数据,不删除数据。 WHERE条件返回与这两个条件匹配的数据,因此我将查找expires
expires
给出过期日期正好在现在之前的所有条目
及
expires>0
提供大于0的所有过期值
编辑:
用整数时间你已经有问题了。
NOW()
返回datetime
数据类型中的值。
与int相比,它应该比较时间的毫秒值
您是否以毫秒为单位存储了时间?您无法将
INT
与DATETIME
进行比较(这就是NOW()
返回的结果)
如果您的过期
实际上是一个时间戳,您可以:
- 将时间戳转换为
和DATETIME
:FROM_UNIXTIME()
其中FROM_UNIXTIME(expires)您根本无法将
与INT
进行比较(这就是DATETIME
返回的内容) 如果您的NOW()
实际上是一个时间戳,您可以:过期
- 使用
:FROM_UNIXTIME()
将时间戳转换为
日期时间,其中FROM_UNIXTIME(expires)以上查询不会从数据库中删除任何内容。查看数据库日志以查看实际的delete子句,该子句正在被调用OOPS我复制了错误的一个,正确的一个。
的数据类型是什么?您可以定义您的expires吗?或者,如果您添加一个示例,说明哪些记录应该被删除,哪些不应该是unix时间戳,上面的查询始终不会从数据库中删除任何内容。查看数据库日志以查看实际的delete子句,该子句正在被调用OOPS我复制了错误的一个,正确的一个。expires
的数据类型是什么?您可以定义您的expires吗?或者,如果您添加一个示例,说明哪些记录应该被删除,哪些不应该是unix时间戳,一直都是海报上写的专栏是INTas类型的海报上写的专栏是INTES类型的没错,我甚至没有意识到NOW()是一个正确的时间格式,以为它是一个时间戳,这就是我的问题。是的,没错,我甚至没有意识到NOW()是一个正确的时间格式,以为它是一个时间戳,这就是我的问题。expires
- 使用