一定の上限を超えたデータを削除するMYSQL文を作りました。
2022.07.26
おはようございます。今日は手続きに奔走してきます。
さて一定の上限を超えたデータを削除するMYSQL文を作りましたので、お裾分けです。下記のコードはidを降順にした上で、自動でnoを割り振ります。自動で割り振ったnoを元に条件件数を超えるデータは削除しております。なぜ、このようなMYSQL文を作ったかというと日付では判別出来ない削除データがあったからです。
DELETE T1 FROM test_tbl AS T1
inner join (SELECT ROW_NUMBER() OVER(ORDER BY id DESC) AS rownum,id from test_tbl) AS T2
on T1.id = T2.id WHERE T2.rownum >= 4590;
この方法を使用するとサブクエリでいろいろな条件をしていた上でナンバーを割り振り削除することが出来ます。他にも方法はあると思いますが自分が思いついた、まぁある程度、処理の早い削除かと思います。是非、ご活用頂ければ幸いです。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
AS rownum, DELETE T, FROM test_tbl, gt, ID, id from test_tbl, inner join, MYSQL文, no, ORDER BY id DESC, over, SELECT ROW_NUMBER, お裾分け, サブクエリ, ナンバー, 一定, 上限, 日付, 条件件数, 降順,
MYSQL8以降ウィンドウ関数対応=>ランキング。
2019.05.06
MYSQLでもランキング機能(rank())が使えるようになったとさ。日本国内のレンタルサーバーは最新の技術というより
一歩遅れた技術で運営している理由はリスクを取らないためにそうしているのだろうなとヒシヒシと感じます。
### support mysql>8.0.2 ウィンドウ関数
```sql
select id,namae, rank() over(order by code_total asc)as code_rank from code_data;
```
### code_data
|id|namae|code_total|
|---|---|---|
|1|kaonashi|15|
|2|mononoke|75|
|3|asitaka|52|
|4|san|87|
|5|theta|99|
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, ---, 1, 15, 2, 3, 4, 5, 52, 75, 8, 8.0.2, 87, 99, as, asc, asitaka, BY, Code, data, from, gt, ID, kaonashi, mononoke, MYSQL, namae, order, over, rank, san, select, SQL, support, theta, total, ウィンドウ, サーバー, ため, ランキング, リスク, レンタル, 一, 国内, 対応, 技術, 日本, 最新, 機能, 理由, 運営, 関数,