カーソルのように任意の値から任意の数だけ値を取得するsql文を書きたいです。
具体的には
id | 1 | 2 | 5 | 9 | ... | 50 |
---|---|---|---|---|---|---|
name | apple | banana | orange | lemon | ... | peech |
rate | 3 | 1 | 3 | 5 | ... | 2 |
の場合、指定のidからlimit5個のように取り出したいです。
想定しているクエリは、実際にはありませんが以下のようなイメージです。
sql
1select name from fruits order by rate asc, id asc limit 5 <offset start_id=5>;
offset等は条件が書けないと、idバラバラになり、where id>=5のようにできません。
今回はorder by rate asc, id ascを使用しましたが、想定としてはcase等複雑になる見込みです。
教えていただけますと幸いです。
よろしくお願い致します。
(補足)
MySQLのバージョンは5.7です。
MySQLのバージョンはいずれでしょうか?
一般にDBのデータは縦方向に記載します。
(ちょっと紛らわしいです)
それとサンプルがrateでソートしているにしては順番がおかしいです
具体的なサンプルデータを元に想定する結果を例示ください
今回教えていただいたのは、ユーザー変数という方法のようでした。
postgresqlではROW_NUMBER()を使用するようです。
https://style.potepan.com/articles/23566.html
mysqlでも8.0以降なら使えます。
それは知りませんでした。
追記いただきありがとうございます。
回答2件
あなたの回答
tips
プレビュー