23

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

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

DELETE FROM table WHERE something = value;

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

DELETE FROM table WHERE rownumber <= X;

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

4

1 に答える 1

48

LIMIT削除に使用:

DELETE FROM table WHERE condition LIMIT 10

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

DELETE FROM table LIMIT 10

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

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

于 2012-10-08T10:40:05.030 に答える