0

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

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

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

4

1 回答 1

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 语句不会花费太多时间。您可以简单地重复 DELETE 语句,直到受影响的行数小于 LIMIT 值。

LIMIT是 MySQL 特定指令,您不能将其用作通用 SQL 查询,其他数据库(如 PostgreSQL)可能无法执行此类查询。

另注:您id在查询中指定。如果删除行,则不应指定列。

我已经使用 SQL Fiddle 对其进行了测试,它成功了:http://sqlfiddle.com/#!2/13ccb7/1/0http://sqlfiddle.com/#!2/258203/1/0

于 2013-10-12T19:58:12.513 回答