【发布时间】:2023-01-21 00:46:06
【问题描述】:
我正在对 MySQL 数据库执行 SQL 并尝试编写命令来删除表中的所有行。当我运行“DELETE FROM MyTable”时,我收到错误 1175,因为默认情况下启用了一项安全功能,强制您在主键上指定 WHERE 子句。
我可以打开此功能,但我有点喜欢它,所以我试图通过添加 WHERE 子句来修改我的命令以具有相同的效果。所以,这有效:
DELETE FROM MyTable WHERE MyID > 0
在删除 MyID 大于零的所有行时,我正在寻找一个真正通用的行,它适用于任何 MyID 值。我试过这些
DELETE FROM MyTable WHERE MyID = ANY
DELETE FROM MyTable WHERE MyID = *
但它们是语法错误。 WHERE 子句上的文档说它只接受 =、<、>、>=、<=、<>、BETWEEN、LIKE 和 IN,但看起来它不接受任何东西。
接受任何值的 WHERE 条件是否有正确的语法?
谢谢你。
【问题讨论】:
-
Where MyId = MyId? -
@斯图,
or MyID is NULL -
或者,
Where 1=1 -
或者简单地
where 1=1 -
为什么不截断?