こちらは2019/2/8にQiita:Teamに投稿した記事をリライトしたものです。
やりたかったこと
ソート後のレコードの順番をSQLで取得する
どうしたか
SELECT
(SELECT count(*) + 1
FROM article
WHERE created_at > article.created_at
ORDER BY created_at DESC) AS displayOrder
FROM article
WHERE article.id = :id
ちょっと解説
- 前提
- 記事一覧は投稿日時(created_at)降順で並んでいる
- 取得したい記事より後に投稿された記事の件数を取得する
-
(1の件数)+ 1
で取得したい記事がcreated_at降順で並び替えた時の順番が取得できる
めちゃくちゃ単純な話でしたね。。。
EOF