データベーステーブルの最初のX行を削除するSQLコマンドはありますか?
一部の情報が含まれているが、idまたは自動インクリメント値が含まれていないデータベーステーブルと、このテーブルの最初のX行を処理するプログラムがあります。その後、これらのX行を削除する必要があります。したがって、標準クエリは次のとおりです。
DELETE FROM table WHERE something = value;
したがって、次のようなクエリを作成する方法はありますか?
DELETE FROM table WHERE rownumber <= X;
このコマンドを試しましたが、データベースには何も起こりません。手がかりはありますか?
削除にLIMIT
を使用します:
DELETE FROM table WHERE condition LIMIT 10
または、条件が必要ない場合
DELETE FROM table LIMIT 10
行が削除される順序は定義されていないことに注意してください。これは、DBMS構成とテーブルインデックスによって異なります。 ORDER BY
削除が定義された順序で行われるようにします。 ORDER BY id ASC
は、最も小さいIDを最初に削除します。
詳細については、 DELETEのMySQLドキュメント を参照してください。