MySQLで下記画像のようなテーブルがあるとします。
この中から例えばお金の列の5行目のデータを取得する場合ですが
色々調べた結果、行の指定がわかりません。
SELECT お金 FROM テーブル1 5行目;
お暇な方教えてください(笑)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
先頭から5番目となると、何らかの項目の値を大きい順、または小さい順に並べて、5番目を指定されると思います。RDBにはそれぞれ行番号を振る、または行指定するSQL文が有りますので、ORDER BYで並べて、5行目を指定する事ができます。
MySqlの例ですが
sql
1SELECT `いちご`,`きゅうり`,`お金`,`人間` 2FROM ( 3 SELECT 4 @i:=@i+1 AS ROWNUM 5 ,T1.* 6 FROM 7 (SELECT @i:=0) AS INDEX_NUM 8 , `テーブル1` AS T1 9 ORDER BY T1.`いちご`) AS T2 10WHERE ROWNUM=5 11;
ちなみに暇です。
投稿2017/06/26 04:03
編集2017/06/26 05:13総合スコア4070
0
ベストアンサー
複数行を問い合わせた際に、5行目である事を指定する方法が各 RDBMS で異なります。
また質問に並べ替えの指定 (order by) がありませんので結果が変わってしまいます。
例えばこのテーブルに ID というカラムが付いていてそれで並べ替えた際の5行目という条件であれば以下の様になります。
sql
1select お金 from テーブル1 where rowid == 5 order by id;
これは SQLite の場合です。SQLite でない場合、rownum であったり generate_series であったり対応が異なります。
追記
MySQL の回答を書きます。
sql
1select お金 from テーブル1 order by ID desc limit 4,1
IDというカラムが付いていていた場合の回答です。
投稿2017/06/26 02:16
編集2017/06/26 02:32総合スコア5030
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/26 02:29
2017/06/26 02:33
2017/06/26 02:38
退会済みユーザー
2017/06/26 02:42
2017/06/26 02:44
退会済みユーザー
2017/06/26 05:22
2017/06/26 05:52
0
RDBにおいてレコードとレコードの間には前後関係という考え方がありません
従って必ずorder byでなんらかの並べ替えをしないとn番目という
順番をつかった抜き出しはできません。
逆に言うと、適当に取り出したデータは何がでてくるかわからないということ
何がでてくるかわからないデータの5番目をとるということは
1番目をとっても同じことですので、ordery byをしない場合の5番目をとると
言う行為自体が意味が無いということになります
投稿2017/06/26 03:01
総合スコア114883
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/26 05:24
0
降順の場合
SELECT お金 FROM テーブル1 order by id desc limit 1,1
投稿2017/06/26 05:34
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。