web-dev-qa-db-ja.com

データベースの最初のX行を削除する

データベーステーブルの最初のX行を削除するSQLコマンドはありますか?

一部の情報が含まれているが、idまたは自動インクリメント値が含まれていないデータベーステーブルと、このテーブルの最初のX行を処理するプログラムがあります。その後、これらのX行を削除する必要があります。したがって、標準クエリは次のとおりです。

DELETE FROM table WHERE something = value;

したがって、次のようなクエリを作成する方法はありますか?

DELETE FROM table WHERE rownumber <= X;

このコマンドを試しましたが、データベースには何も起こりません。手がかりはありますか?

21
coroner

削除にLIMITを使用します:

DELETE FROM table WHERE condition LIMIT 10

または、条件が必要ない場合

DELETE FROM table LIMIT 10

行が削除される順序は定義されていないことに注意してください。これは、DBMS構成とテーブルインデックスによって異なります。 ORDER BY削除が定義された順序で行われるようにします。 ORDER BY id ASCは、最も小さいIDを最初に削除します。

詳細については、 DELETEのMySQLドキュメント を参照してください。

42
Polynomial