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

重複を探す

同一カテゴリ内で名前の重複がないはずのテーブルに重複があるっぽいから探して、って言われて、その場で

SELECT * FROM SomeTable P
WHERE EXISTS (
  SELECT * FROM SomeTable C
  WHERE P.category = C.category AND P.id <> C.id AND P.name = C.name)
ORDER BY P.category, P.id

こんなSQL組んで一覧表示してあげたらびっくりされた。
まぁ、そもそもカテゴリ別にテーブル作ってnameに一意制約付ければいいだけの話なんだけどね*1
この程度のSQLは考えずにでてきて欲しいところ。

*1:カテゴリの種類が数種類、しかも増えることが考えられない