我想从具有相等列值的表中删除X行。为了更好地解决这个问题,我正在以sql查询的方式编写这个问题,请理解:
DELETE id FROM table_name WHERE column_value = 1 AND user_id = 2;
此查询应删除3行。我怎样才能做到这一点?
答案 0 :(得分:2)
可以使用LIMIT
关键字(根据MySQL文档:http://dev.mysql.com/doc/refman/5.0/en/delete.html):
DELETE FROM table_name WHERE column_value = 1 AND user_id = 2 LIMIT X;
将X
替换为数字。
编辑:(关于评论)
我从规范中复制了这个,看起来它解决了你想要解决的问题:
DELETE的特定于MySQL的LIMIT row_count选项告诉服务器 返回控件之前要删除的最大行数 客户端。这可以用于确保给定的DELETE语句 不花太多时间。您只需重复删除即可 声明直到受影响的行数小于LIMIT 值。
LIMIT
是MySQL特定的指令,不能将其用作通用SQL查询,其他数据库如PostgreSQL可能无法执行此类查询。
另一个评论:您在查询中指定了id
。如果删除行,则不应指定列。
我已经使用SQL Fiddle对其进行了测试,并且成功了:http://sqlfiddle.com/#!2/13ccb7/1/0和http://sqlfiddle.com/#!2/258203/1/0。