• ベストアンサー

SELECTでn行目から最後もしくはn行目以外が取得したい

SELECT * FROM hoge LIMIT 10, 20 とすれば10行目から20行目が取得できるのはわかるのですが、2行目から最後までとか、1行目から最後から一行前までを取得するには? ただし、n行はWHEREで条件が指定できないもととします。 一行目にシステム上必要なデータが入っているが、クライアントがブラウザなどから表示した際に見られたくないからです。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

LIMITの2つめの引数に非常に大きな数をいれると、よいようです。 中途半端に大きなデータだとエラーになります。 http://dev.mysql.com/doc/refman/4.1/ja/select.html >一行目にシステム上必要なデータが入っている これはまずいんじゃないですかねぇ・・・ もしやるとしてもフラグで管理してwhereなどで除外するほうが 確実では?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複雑なSELECT

    SELECT * FROM hoge WHERE hoge LIKE '%$okweb%' ORDER BY day DESC; と、ほしい情報が入っているレコードを取得した場合、セレクトした一番最後のレコードの次を取得するにはどうしたらいいのでしょうか?又は一番初めの一つ前のレコードを取得するにはどうしたらいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SELECTでの指定行からの指定行数文の取得

    こんにちは。 OracleでSELECT文、一発で指定行から指定行数分のデータを取得するように指定できるのでしょうか? 例) SELECT * from tbl01; で、100行取得できる状態で25行目から30行分取得する OracleのSQLリファレンスを調べたのですが該当するようなものは 見当たりませんでした。 よろしくお願いします。

  • グループ毎に条件指定で最新の行を取得

    グループ毎に条件指定で最新の行を取得 はじめまして。SQLクエリについてずっと頭を悩ましている問題がありまして、 識者の方に相談したく投稿します。 ID Revision -- -------- 01 1 01 2 01 3 02 1 03 1 上記のようなデータがあって、指定したRevision以下で 最新のデータのみを抽出することをViewで実現したいのですが、 可能でしょうか?(ViewにRevisionの条件を与えたいのです) 例えば、Revisionに2を指定した場合は select * from view_hoge where revision = 2 ID Revision -- -------- 01 2 02 1 03 1 となれば期待通りです。

  • 任意の行のselect

    PHP+MySQLでクエリーを実行する際に 「5行目」と「13行目」と「21行目」 のような、任意の行を取得したいと思っています。 LIMIT句で指定をしようとしても 「LIMIT 5,1」(5行目) は分かるのですが、同時に 「LIMIT 13,1」(13行目) と 「LIMIT 21,1」(21行目) を取得する方法は有るのでしょうか?(複数のLIMIT句?)分かる方がいらっしゃいましたら、お教えください。

    • ベストアンサー
    • PHP
  • Select結果をSelect

    お世話になります。 以下のSQL文のイメージでselectの結果をさらにselectしたいのですが”subquery has too many columns”というエラーを吐かれます。 Postgreに合った書き方がお分かりでしたら教えてください。 よろしくお願いします。 select * from [DB名] where [パスワード] = 'test' IN ( select * from [DB名] where [ユーザID]='1111' order by [更新日] desc limit 3) [やりたいこと] テストDBからユーザIDが1111の行を更新日をキーに降順で並べ、先頭から3行分を取り出す。 その3行からパスワードが"test"のものをselectしたい。

  • 条件によってレコードを取得したい

    Mysqlで以下のような条件のSQL文がわかりません。 hogeというフィールドの値に1があればそのレコードを取得 hogeに1という値のフィールド値をもったレコードがないならhogeが空のレコードを取得したいのですが方法がわかりません。 SELECT * FROM `tebleA` where (`hoge` = '1') or `postageFee_memId` = '' LIMIT 5 上のSQL文ではどうしても「`postageFee_memId` = '' 」のほうが優先されます。 (優先されるのはオートインクリメントIDが小さいから当然ですが・・) 「`hoge` = '1'」が絶対優先されるようにしたいのです。 いわゆる 「`hoge` = '1'」がない場合だけ「`postageFee_memId` = ''」が実行できればと思います。 ifとかを使って条件文をかけばいいのでしょうか? 足らずの情報があればおっしゃってください。 何卒ご教授お願いいたします。

  • sqlite select 表示されない

    原因が分からず困っております。 SQLITEで SELECT * from zip limit 5; だと表示されるのですが SELECT zip7 from zip limit 5; のようにcolumnを指定すると表示されません。 エラーも出ないし空白が5行出ているので、プログラム自体は動いているようなのですが・・・。 ※SELECT zip6 from zip limit 5; のように存在しないcolumnを指定するときっちりエラーが出ています。 環境はCENTOS+SQLITE2+poderosa コマンドラインで実行しています。 宜しくお願いします。

  • 指定値を否定した条件で、NULLも含めた指定値以外を取得

    指定値を否定した条件で、NULLも含めた指定値以外を取得できる方法はありますでしょうか。 使用DBはMYSQLです。 test_table ID,name,value ----------- 1,aaa,100 2,bbb,NULL 3,ccc,300 4,ddd,100 5,eee,NULL SELECT * FROM test_table WHERE value = 100; valueが100のもの、ID:1,2を取得していたのですが、 100以外のものを取得する必要がでてきました。 SELECT * FROM test_table WHERE NOT(value = 100); こうすると、ID:3しか返ってきません。 valueがNULLのものも含めて取得したいのです。 NULLの値があることを考慮すれば、以下のような形で取得はできるのですが、 SELECT * FROM test_table WHERE NOT(value = 100) AND value IS NULL; value = 100という条件に、NOTをつけるかつけないかのような簡単な方法でNULLまで取得したいのです。 実はコーディング中に悩んでいるのですが、 動的ページなため、WHERE条件が定まらないのとかなりの数になります。 当初の予定では、全ての条件を()で囲んでNOTをつけるだけにするつもりでした。 これができないとなると、一つ一つ条件を見てNOTを付加+IS NULLの条件追加をしないといけなくなりそうです。 なにか良い方法がありましたらご教授願います。

    • ベストアンサー
    • MySQL
  • selectの行を共通に使いたい

    ストアド・プロシジャーで   入力引数 @INPUT_TYPE int   if( @INPUT_TYPE = 1 ) begin     select CLM1,CLM2,CLM3         from tableAAA     where CLM1=100   else if( @INPUT_TYPE = 2 ) begin     select CLM1,CLM2,CLM3     from tableAAA     where CLM1=200   end と書くところを   select CLM1,CLM2,CLM3   from tableAAA   if( @INPUT_TYPE = 1 ) begin     where CLM1=100   else if( @INPUT_TYPE = 2 ) begin     where CLM1=200   end と書いてselectの行は共通処理としたいのですが、 当然上記のままでは登録時にエラーが発生します。 どなたか、方法をご存知でしたら教えてください。

  • 複数の条件に該当する結果を、それぞれ2件ずつ取得したい

    こんにちは。 PostgreSQL 7でシステムを開発中ですが、同一テーブルから「列~の値が■のものを2件、列~の値が▲のものを2件、列~の値が●のものを2件、それ以外のものからランダムに2件を取得」したいのですが、実現できなくて困っています。 select * from table where culumn = 'data1' limit 2 union select * from table where culumn = 'data2' limit 2 というようなことなのですが、これでは「limit 2」でparse errorとなってしまいます。 できれば上記のSQL定義でビューを作りたいところなのですが、いい方法はないでしょうか? よろしくお願いします。

MFC-L8650CDWの電源が入らない
このQ&Aのポイント
  • MFC-L8650CDWの電源が入らないトラブルについてのご相談
  • 印刷が終わってパネルが真っ白くなり、電源が入らなくなった場合の対処方法
  • MFC-L8650CDWの電源トラブルによる印刷できない問題の解決方法
回答を見る