ホームページ > データベース > mysql チュートリアル > サブクエリで LIMIT を使用して最新の 15 レコードに基づいて MySQL の行を削除するにはどうすればよいですか?

サブクエリで LIMIT を使用して最新の 15 レコードに基づいて MySQL の行を削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-15 11:48:02
オリジナル
541 人が閲覧しました

How to Delete Rows in MySQL Based on the Latest 15 Records Using LIMIT in a Subquery?

LIMIT 制限のある mySQL サブクエリ

MySQL では、IN 演算子を使用するサブクエリ内で LIMIT 句を使用しようとすると、エラーが発生する可能性がありますMySQL がこの機能をサポートしていないことを示すメッセージ。この記事では、この問題の解決策を提供します。これにより、テーブル内の最新の 15 レコードに関連する特定の条件に基づいてテーブルから行を削除できるようになります。

望ましい結果を得るには、次のクエリを利用できます。構造:

DELETE 
FROM posts 
WHERE id not in (
      SELECT * FROM (
            SELECT id 
            FROM posts 
            ORDER BY timestamp desc 
            limit 0, 15
      ) 
      as t);
ログイン後にコピー

外側の DELETE ステートメントは、行の削除の対象として Posts テーブルを対象としています。 IN 演算子は、保持する必要がある行、つまりサブクエリの結果で見つかった行を識別するために使用されます。

サブクエリは、posts テーブルから id フィールドを選択し、結果をタイムスタンプの降順で並べ替えます。 LIMIT 句を適用して上位 15 レコードを取得します。エイリアス t を使用することで、サブクエリは効率的な処理のための一時テーブルを作成します。

この回避策により、MySQL の制限が効果的に排除され、最新の 15 件に含まれないすべての投稿を削除するという意図した操作を実行できるようになります。記録。

以上がサブクエリで LIMIT を使用して最新の 15 レコードに基づいて MySQL の行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート