レコードを1件のみ取得した後、検索の処理をやめる方法はあるのか?
- PostgreSQLのデータベースでテーブルから、1件のレコードが見つかった時点で他のレコードを検索するのをやめる方法はあるのか?
- テーブルからoptionが1のレコードを取得する際に、1件見つかった時点で他の該当レコードの検索をやめる方法はあるのか?
- SELECT文のOFFSETとLIMITを使用して1件のレコードを取得する方法は有効か?他にも検索の処理をやめる方法はあるのか?
- ベストアンサー
レコードを1件のみ取得した後、検索をやめる方法はあるのでしょうか?
PostgreSQLのデータベースでテーブルから、 "1件のレコードが見つかった時点で、他のレコードを検索するのをやめる" という事はSQLでできるのでしょうか? 【テーブル名 Fruit 】 | id | option | name | 1 2 りんご 2 1 みかん 3 1 メロン 4 1 バナナ 5 4 いちご 上記のようなテーブルから、optionが1のレコードを検索する時、 どのレコードでもいいので、1件見つけた時点で他にも該当のレコードがあるかという検索の処理をしない。 という事はできるのでしょうか? 出来るのであれば、膨大な数のレコードがある場合、検索の時間が減るのでは無いかと思ったのですが・・・ 現在は下記のSQLのように、OFFSETとLIMITを使用して1件のレコードを取得しています。 SELECT * FROM Fruit WHERE option=1 OFFSET 0 LIMIT 1 このやり方であっているのでしょうか? または他の仕方があるのでしょうか? 教えていただきたいです。 宜しくお願いします。
- xtamanegix
- お礼率26% (5/19)
- PostgreSQL
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
LIMITで正しいと思います。
関連するQ&A
- 片方のテーブルに存在しないレコードの抽出する方法
shop1テーブルに存在して、shop2テーブルに存在しないレコードを抽出させたいのですが、 どのようにSQLを書けば良いのでしょうか? よく知らないのですが、SQLでは結合?というジャンルの手法ですか? shop1テーブル nama num みかん 10 りんご 20 なし 30 いちご 50 shop2テーブル name num みかん 55 りんご 44 なし 33
- 締切済み
- SQL Server
- 検索結果の出力方法について
"001","Aさん","ぶどう", "001","Aさん","みかん", "001","Bさん","バナナ", "001","Bさん","イチゴ", "001","Cさん","スイカ", "001","Cさん","メロン", "002",・・・ "003",・・・ 例えば上記の様な検索用のログファイルがあり、”001”で検索した場合、今のところ極々単純に ━━━━━━━ │Aさん|ぶどう| ━━━━━━━ |Aさん|みかん| ━━━━━━━ |Bさん|バナナ| ━━━━━━━ |Bさん|イチゴ| ━━━━━━━ |Cさん|スイカ| ━━━━━━━ |Cさん|メロン| ━━━━━━━ ↑という感じで結果を出力させているのですが、 これを ━━━━━━━ |Aさん|ぶどう| | |みかん| ━━━━━━━ |Bさん|バナナ| | |イチゴ| ━━━━━━━ |Cさん|スイカ| | |メロン| ━━━━━━━ 上記のように、同じ名前の結果が複数ある場合、それを統一して結果を表示させたいと考え、いろいろと悪戦苦闘してみましたが、どうしてもうまくいきません。 ログファイルには手を加えないという事を前提に、下のテーブルのような出力に なるような、構文の書き方がありましたら、是非教えてください。
- 締切済み
- PHP
- 条件検索の方法について
フィールド (name) に「いちごがむ」「いちごじゅーす」「みかんがむ」「みかんじゅーす」がある場合、文字の先頭に『いちご』がつく情報を抽出するsql文は以下になります。 SELECT * FROM test WHERE name LIKE 'いちご%' では、フィールド (name) に「いちご」「みかん」があるとします。 検索文字『いちごがむ』(もしくは『いちごじゅーす』)からnameの「いちご」箇所を抽出するにはどのようなsqlを発行すればよいのでしょうか? よろしくお願いします。
- ベストアンサー
- MySQL
- 複数の条件に該当する結果を、それぞれ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定義でビューを作りたいところなのですが、いい方法はないでしょうか? よろしくお願いします。
- ベストアンサー
- PostgreSQL
- SQLiteで最も古いレコードのみの削除
AndoroidでDBを使うのですが、考える動作のSQL文が作成できません。 テーブルTESTは以下のカラムを持ちます ・ID - primary key not null ・VALUE - not null テーブルTESTは最大で10件のレコードを保持します、11件目のレコードが発生したら 最も古い1件目のレコードを削除してから、11件目のデータを新しい10件目のデータとして テーブルに保存します。 そのために「最も古いレコード1件のみを削除する」というSQLを作成したいのですが、 考えたSQL文が正しくないと怒られてしまいます。 delete from TEST as A, (select * from TEST LIMIT 1)as B where A.ID=B.ID; この動作を1つのSQL文で行うのは不可能なのでしょうか?
- ベストアンサー
- その他(データベース)
- 別テーブルの検索した結果が0件のデータのレコードを削除したい
SQL Server 2005 を使用しています。 別テーブルで検索した結果が0件の時、対応するレコードを削除したいのですが、SQLをどうかけば実現出来るかわかりません。 具体的には、テーブル Aとテーブル B があって、テーブル Aのキーが AA,AB,ACとします。 この時、テーブル Bにも AA,AB,ACという列があるとします。 この時に、テーブルBをAA,AB,ACでGROUP BYしてCOUNTをとった時にレコード数が0のキーのレコードを、テーブルAから削除したいのですが、この時SQLを一つで書きたいのです。 テーブル Aが明細、テーブル Bが名簿みたいな形で、名簿に存在しないレコードを削除するような感じです。 どういうSQLを書けばいいか少し悩んでいます。 AA,AB,ACは全て integer型です。 どなたかわかりましたら教えてください。
- ベストアンサー
- SQL Server
- 検索後のレコード選択について
OSは、WINDOWS2000 PostgreSQL+PHP4を使用しています。 レコードの選択条件として、選択レコードの始めの50件、51件~100件のように件数指定で取得することはできるのでしょうか? 始めの50件ですと、TOP 50(SQL Serverだったか、ACCESS?)のような感じで取得できるような気がするのですが、51件~100件といった指定方法はあるのでしょうか? ご存知の方がいらっしゃいましたら、ご教授ねがいます。
- ベストアンサー
- PostgreSQL
- 検索するレコードの件数について
こんにちわ。 ハントと申します。 SQLで検索するレコードの件数について アドバイスを頂きたいのでよろしくお願い致します。 (質問内容) 検索するレコードが100件あるとします。 この内、50件を検索したいのですが、 うまく抽出できるSQLが思い当たりません。 (ROWNUMを使えばよいと思いましたが、ROWNUMが振られるのは ORDER BY の前であるので、 ORDER BYをした後に順番を振りたいのです。) どのようにSQLを組んだら抽出できるのかアドバイスをよろしくお願い致します。
- ベストアンサー
- Oracle
- Accessで最新レコード20件を表示させるには
Access2000のクエリで、最新のレコード20件を表示させたい場合どのようにしたら良いでしょうか? レコード番号があり、最新番号が100の場合、80~100を表示させたいのですが。 SQLベースだと SELECT no_c FROM table ORDER no_c DESC limit 20 など、limitが使えますが、Accessでこれに該当するものはありますか?
- ベストアンサー
- オフィス系ソフト
お礼
これで良かったんですね。 安心しました。 ありがとうございました!