MYSQL like查询删除表中的所有行

时间:2015-08-06 10:51:47

标签: mysql database

这是我使用的查询

DELETE FROM tableName WHERE dateTime like '2014-10-21 %' OR '2014-10-22 %';

此查询将删除表中的所有行。有人可以解释原因吗?

更新: 这是日志

1   11:45:50    DELETE FROM tableName WHERE dateTime like '2014-10-21 %' OR '2014-10-22 %'  49 row(s) affected, 1 warning(s): 1292 Truncated incorrect INTEGER value: '2013-10-22 %'

没有OR运算符

可以正常工作

由于

2 个答案:

答案 0 :(得分:2)

WHERE子句读取(dateTime like '2014-10-21 %') OR ('2014-10-22 %')(我的括号)。由于'2014-10-22 %'始终为true,因此匹配所有行。

您需要比较dateTime

两侧的OR
DELETE FROM tableName WHERE dateTime like '2014-10-21 %' OR dateTime like '2014-10-22 %';

答案 1 :(得分:2)

也许这有效:

DELETE FROM tableName WHERE dateTime like '2014-10-21 %' OR dateTime like '2014-10-22 %';

我发现你的语法很奇怪。为什么您的字段名称为“datetime”?这是一个类型名称。通常也喜欢运算符不用于过滤日期时间字段。我认为在这种情况下,最佳条款是最好的。