LIMIT 句を使用して MySQL の特定の範囲の行を削除するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-25 13:58:30
オリジナル
301 人が閲覧しました

How to Delete a Specific Range of Rows in MySQL Using LIMIT Clause?

制限付きの MySQL DELETE ステートメント

ユーザーが次のクエリを使用してテーブルから行を削除しようとしているときにエラーが発生しました:

DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
ログイン後にコピー

エラー メッセージは、構文が間違っていることを示しています。

説明

ここで使用されている DELETE ステートメントに LIMIT にオフセットが含まれているためにエラーが発生します。句。これは MySQL では許可されていません。 LIMIT 句では、削除する行数のみを指定できます。

解決策

テーブルから指定した範囲の行を削除するには、オフセット機能を使用できません。 LIMIT句で。代わりに、サブクエリを使用して削除する行を選択し、主キー値を使用して行を削除する必要があります。

このシナリオでは次のクエリを使用できます:

DELETE FROM `chat_messages`
WHERE `id` IN (
    SELECT `id` FROM (
        SELECT `id` FROM `chat_messages`
        ORDER BY `timestamp` DESC
        LIMIT 20, 50
    ) AS `x`
)
ログイン後にコピー

このクエリは二重ネストを使用して削除する行を選択し、MySQL の制限を回避します。

以上がLIMIT 句を使用して MySQL の特定の範囲の行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!