跳过或快速返回查询@variable是否为NULL

时间:2016-10-10 08:02:55

标签: mysql

我尝试设置查询以删除表格中除最近100条记录以外的所有记录,因此我使用以下查询来确定要使用的时间戳:

SELECT @time := `time`
FROM `table`
GROUP BY `time`
ORDER BY `time` DESC
LIMIT 99,1;

我的目的是使用以下简单查询:

DELETE FROM `table` WHERE `time` < @time;

现在,只要表格中至少有100行就可以了,但是,如果行数较少,那么@time的值实际上是NULL,这是没用的;这是因为time < @time似乎返回每一行(不像直接输入time < NULL,这有点奇怪)。

无论如何,我的问题是这个;鉴于time可能是NULL或为空,我在这种情况下如何跳过DELETE语句,或者如果这很复杂,我该如何调整DELETE不仅要删除任何内容,还要尽可能有效地删除(即不搜索)。

如果解决方案需要对我的初始SELECT进行某种更改,那么这很好,只要保持逻辑(我想保留最近的100个条目)。

0 个答案:

没有答案