読者です 読者をやめる 読者になる 読者になる

White Box技術部

WEB開発のあれこれ(と何か)

Gistの貼り付けテストと、SQLで同一テーブル内の重複レコードを削除する方法

someidが同じで、fooidがXXXから始まるレコードが複数あれば、pkが若いレコード1件だけ残して削除するSQL

このブログに使わせて頂いているテーマは、見やすくて大変気に入っていたのですが、Gistを貼り付けると一部文字が白になってしまい放心してしまいました。
はてなブログはGistが貼り付けれるらしい。よし、移行だ」と思って移行したのに、貼り付けれないのでは意味がない、でもデザインはこれがいい・・・

CSSいじりました。


デザインCSSの変更

開発者ツールで該当箇所を見たところ、「.entry-content pre」で指定されている「color: #fff」が影響しているようだったので、 これを打ち消してもよかったのですが、幸いgist側がクラス付けてくれていた&CSSに加えられそうな指定があったため、以下をはてなブログのデザインCSSに追加しました。

.gist pre {
    color: black;
}

背景色がちょっと通常のGist貼り付けと違って表示されていますが、これはこれで見やすいので、このデザインでいけそうです(ヤッタネッ


SQLの解説

サンプルのGistは、「同一テーブル内の意味合いが重複しているレコードを削除するためのSQLです。
前にちょっとデータ整理するために考えてたのですが、自力では思いつかず、以下のサイトを参考に作った思い出が蘇ります。
今回GitHubのアカウントを取り直したため、Gistも真っ新だったので、備忘ついでに書いてみました。

ポイントは1)t2で重複したカラムが入っている一番若いPKのレコードを特定し、2)t1からそれ以降の重複レコードを削除するところかなと。
削除の際に重複したもののレコードであることは、t2の一致比較で保障されている、という点も自分としてはポイントでした。