MySQL删除或选择并删除

时间:2015-11-10 02:37:41

标签: mysql

谁更好?删除或选择并删除(如果存在)。

DELETE FROM users WHERE id = 1;

OR

SELECT id FROM users WHERE id = 1;

// IF ROW COUNT == 1

DELETE FROM users WHERE id = 1;

感谢。

2 个答案:

答案 0 :(得分:2)

不需要先检查SELECT是否存在行,这是WHERE子句在DELETE上的作用。如果您打算删除所有行,TRUNCATE通常比DELETE更有效,但是您将无法回滚操作,因为绕过了保存到撤消空间。

答案 1 :(得分:2)

如果您只想删除一行,则可以使用limit

DELETE FROM users
WHERE id = 1
LIMIT 1;

但是,id可能在表格中是唯一的。没有LIMIT的查询将删除所有匹配的行。如果没有,则不删除任何行 - 没有错误。