MySQLのDELETE文でLIMIT句を使用して上位3件のレコードを削除する

MySQLでは、DELETE文でLIMIT句とORDER BYを使用して上位n件のレコードを削除することができます。

削除前にORDER BYで指定した方法で並べ替えられ(ASCは昇順、DESCは降順、省略した場合は昇順)、LIMIT句で指定した行数のレコードが削除されます。

構文:
DELETE FROM テーブル [WHERE 条件]
ORDER BY カラム [ASC | DESC]
LIMIT 行数;


例えば、データベースtestのsalesテーブルに10件のレコードが格納されていて、priceの値が低い順に3件のレコードを削除する場合は以下のSQL文になります。

DELETE FROM test.sales ORDER BY price LIMIT 3;

実際に実行してみると以下のような結果になります。

削除前のデータ:

mysql> select * from test.sales order by price;
+----------+-------------+---------+----------+
| ordernum | product     | price   | quantity |
+----------+-------------+---------+----------+
|        3 | WII         |    4500 | 1        |
|        5 | PS3         |   10000 | 3        |
|        8 | G-SHOCK     |   12000 | 8        |
|        9 | EXILIM      |   14000 | 7        |
|        1 | PS4         |   20000 | 1        |
|        6 | COOLPIX     |   23000 | 1        |
|        7 | amazon fire |   25000 | 6        |
|       10 | GoPro       |   27000 | 3        |
|        4 | iPhone SE   |   50000 | 4        |
|        2 | iPhone 6    | 1000000 | 2        |
+----------+-------------+---------+----------+
10 rows in set (0.01 sec)

DELETE文を実行:

mysql> DELETE FROM test.sales ORDER BY price LIMIT 3;
Query OK, 3 rows affected (0.08 sec)

削除後のデータ:

mysql> select * from test.sales order by price;
+----------+-------------+---------+----------+
| ordernum | product     | price   | quantity |
+----------+-------------+---------+----------+
|        9 | EXILIM      |   14000 | 7        |
|        1 | PS4         |   20000 | 1        |
|        6 | COOLPIX     |   23000 | 1        |
|        7 | amazon fire |   25000 | 6        |
|       10 | GoPro       |   27000 | 3        |
|        4 | iPhone SE   |   50000 | 4        |
|        2 | iPhone 6    | 1000000 | 2        |
+----------+-------------+---------+----------+
7 rows in set (0.00 sec)

[2552] Posted by kagahiro at 2016/05/12 11:11:37
オープン | 1 point | Link (4) | Trackback (1) | Comment (0)

キーワード

3件 上位 レコード MySQL LIMIT DELETE 

ジャパンのホームページ


MySQLのDELETE文でLIMIT句を使用して上位3件のレコードを削除する 関連リンク

SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL)
「先頭からn件のレコード(結果セット)だけ取得する方法が知りたい。」というのは、データベース関連のメーリングなどで以前からよくある質問ですが、SQL ServerやOracle、MySQL、PostgreSQLなどRDBやバージョンによ...
MySQL
MySQLとは、フィンランドのMichael Widenius氏よって開発された、オープンソースライセンスで配布されている高速性に重点を絞った軽快なRDBMSで、欧米などで広く普及している。MySQL AB によって開発、提供、サポート...
MySQLのUPDATE文でLIMIT句を使用して上位3件のレコードを更新する
MySQLでは、UPDATEでLIMIT句とORDER BYを使用して上位n件のレコードを更新することができます。更新前にORDER BYで指定した方法で並べ替えられ(ASCは昇順、DESCは降順、省略した場合は昇順)、LIMIT句で指定した行数...
MySQLのINSERT ... SELECT文でLIMIT句を使用して上位3件のレコードをテーブルに追加する
MySQLでは、INSERT ... SELECTを使用することで1つまたは複数のテーブルからレコードをテーブルに追加できます。また、SELECTでLIMIT句とORDER BYを使用して上位n件のレコードのみテーブルに追加することもできます。...

MySQLのDELETE文でLIMIT句を使用して上位3件のレコードを削除する トラックバック

トラックバックURL :

Linked from ネット掲示板 - ゴクBBS : SQL質問スレ at 2016/09/29 23:39:28
このスレでは「こういうことをやりたいんだけどSQLでどう書くの?」「こういうSQLを書いたんだけどうまく動きません><」といった質問を受け付けています。SQLはISOによって標準化されていますが、標準を100%実装し...

MySQLのDELETE文でLIMIT句を使用して上位3件のレコードを削除するへのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (3 PV)
  2. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (3 PV)
  3. グーグルニュース(Google News)日本版が表示できるURL (2 PV)
  4. [将棋]角換わり▲4五桂速攻(△6五桂速攻) #佐藤天彦名人 #三浦弘行九段 (2 PV)
  5. Google News (グーグルニュース)日本版 (2 PV)
  6. Tumblr(タンブラー)のダッシュボードからおすすめ投稿を消す(非表示にする)方法 (1 PV)
  7. PHPでMySQLに接続して、SELECTでデータを取得するサンプルプログラム (1 PV)
  8. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (1 PV)
  9. Google Finance(グーグルファイナンス)日本版が表示されるようになってますが・・・ (1 PV)
  10. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (1 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2289 PV)
  2. Google News (グーグルニュース)日本版 (701 PV)
  3. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (378 PV)
  4. Tumblr(タンブラー)のダッシュボードからおすすめ投稿を消す(非表示にする)方法 (378 PV)
  5. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (370 PV)
  6. [将棋]角換わり▲4五桂速攻(△6五桂速攻) #佐藤天彦名人 #三浦弘行九段 (207 PV)
  7. グーグルニュース(Google News)日本版が表示できるURL (153 PV)
  8. ウェブページを1回だけリロード(再表示)する方法 (150 PV)
  9. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (143 PV)
  10. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (138 PV)

アクセス統計

ディレクトリ

関連サイト