从表中删除X行

时间:2013-10-12 19:54:35

标签: php mysql sql

我想从具有相等列值的表中删除X行。为了更好地解决这个问题,我正在以sql查询的方式编写这个问题,请理解:

DELETE id FROM table_name WHERE column_value = 1 AND user_id = 2;

此查询应删除3行。我怎样才能做到这一点?

1 个答案:

答案 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/0http://sqlfiddle.com/#!2/258203/1/0