• ベストアンサー

連番で検索

初めて質問させていただきます。 よろしくお願いします。 【質問内容】 連続する番号を○○件抽出する。 (連続していない番号もあるとします。  以下の番号があり、   1 2 3 4 6 7 8 11 12 13 14 15 16  ●連続する番号を3件抽出する。   1,2,3  ●連続する番号を5件抽出する。 11,12,13,14,15  というふうにしたいのですが。。。) 以上のような検索でSqlが思いつきません。 どなたか、ご存知の方がいらっしゃれば よろしくお願いいたします。

  • MySQL
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

昇順ソート済みで、昇順検索するとした場合、下記のようなアルゴリズムでいかがでしょうか。 1.最初のレコード取得(A) 2.次のレコードを取得(B)し、B = A + 1 であれば、count = count + 1   →count = n (求める連続数) であれば、終了 3.B = A + 1 でなければ、count = 1、A = B 4.2へ

Topaz-_-
質問者

お礼

ありがとうございます。 一度試してみます。

その他の回答 (1)

  • siwa32
  • ベストアンサー率60% (9/15)
回答No.2

SQLの ORDER BY LIMIT を調べてください。

関連するQ&A

  • 検索するレコードの件数について

    こんにちわ。 ハントと申します。 SQLで検索するレコードの件数について アドバイスを頂きたいのでよろしくお願い致します。 (質問内容) 検索するレコードが100件あるとします。 この内、50件を検索したいのですが、 うまく抽出できるSQLが思い当たりません。 (ROWNUMを使えばよいと思いましたが、ROWNUMが振られるのは ORDER BY の前であるので、  ORDER BYをした後に順番を振りたいのです。) どのようにSQLを組んだら抽出できるのかアドバイスをよろしくお願い致します。

  • PHPで絞り込み検索結果の件数を表示する

    同じ質問が数多くあるようですが、どうにもうまくいかない為恐縮ですが質問させて頂きました。 私はPHPとMYSQLを使ってホームページを作成しております。 やりたいことは、DBのTBに数百ある情報をPHPで幾つかの条件で絞り込み検索をかけることで、それ自体はできたのですが、何件の結果が抽出されたかを表示することができません。 例:○○件の検索結果が表示されました。 ←こんな感じにしたいのです。 他の質問を参考に以下のように記述をしたのですがどうにもうまくいきません。 $sql ="SELECT*FROM estate WHERE 価格 BETWEEN $price1 AND $price2'"; print 'sql_num_fields( $sql ) . "\n"件の検索結果が表示されました'; どのような点が問題なのか教えていただけますでしょうか? できればソースを教えていただけると助かります。

    • ベストアンサー
    • PHP
  • データの検索

    sheet1、sheet2にそれぞれに電話番号が1000件以上入力されています。 半角、ハイフォンつきです。 sheet1とsheet2で重複している電話番号を抽出したいのですが、簡単に 出来る方法はありますか? 今は検索機能で一つづつ電話番号をコピーして検索かけて…という方法をとっていますが、やはり時間が掛かります。 どうぞ宜しくお願いします。 山田

  • ワイルドカードの検索

    項目に'%'が入力されているデータを抽出したいのですが、 以下のようなSQLだとデータがすべて抽出されていまいます。  SELECT *   FROM t_table  WHERE code_name LIKE '%%%' '%'を検索するにはどうのようにすればいいのでしょうか?

  • ACCESS2007あいまい検索について

    いつもお世話になっております。ACCESS2007において、システムを作成しています。元になるデータから情報を抽出して、表示するということなのですがうまくいきません。 検索メニューは下記のとおりです。 <検索メニュー> _________________ |社名:[会社名a] ← AAA、AAA株式会社 ←空白でも構わない。 |内容:[業務内容a] ←電気、水道 ←空白でも構わない。 |住所1:[住所a] ←空白でも構わない。 |住所2:[住所b] ←空白でも構わない。 |           [検索] [入力クリア]  |__________________ どれか、ひとつ情報を入力するようにする。 どこに入力をしても、データを抽出できるようにしたいです。下記は元データのフィールドです。 [ID][呼称][社名][郵便番号][住所][電話番号][郵便番号][住所2][電話番号][内容] 一つの情報さえ入力されれば、抽出されフォームに表示する。選択クエリに下記のような条件式を入れてあります。あいまい検索がうまくいかず、データの1件目しか表示されません。 Like "*" & [Forms]![会社情報検索メニュー]![会社名a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![業務内容a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![住所a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![住所b] & "*" お分かりになる方、どうかご教授ください。お忙しいとは思いますが、どうぞよろしくお願いいたします。

  • 6000通程のメールからの、任意データの抽出と、整理・保存に関して。

    どなたか、ご存知の方教えてください。 よろしくお願いいたします。 ウィンドウズ2000、outlookexpress6の環境です。 3年間ほど、HPを管理していまして、 閲覧した個人から電話番号など、 3000件ほどメールで届いています。 他の内容のメールも3000件ほど届いています。 メールのフォルダによる、振り分けを行って いなかったで、大事なメールと混同してしまっています。 保存されている、メールの本文内に、 「個人の電話番号」を抽出して、 それを連絡とりやすい形式、例えばエクセルファイルに 保存するというのは可能でしょうか? 説明がわかりにくければ、すみません。 outlookexpressの検索機能で、 「個人の電話番号」の掲載されている、 メールを取り出すことは可能なようですが、 その後、どうやって連絡先を保存したらいいものかと、 困っています。 質問(1)outlookexpressからの、データの抽出方法 質問(2)抽出したデータの保存方法 です。以上です。よろしくお願いします。

  • ■検索時にINDEX(インデックス)がどう役立つのか?

    いつもお世話になっております。 MySQLのカテゴリにて質問をさせて頂きますが、このことに意味はありません。 SQLにおける、INDEXの考え方を知ることができれば良いなと思っております。 SQLについては初心者ですので、分かりやすく教えて頂けると助かります。 では、本題へ。 ------------- あるデータテーブルの検索速度を上げる方法として、 INDEXを設定することもその1つに挙げられるかと思いますが、 あるテーブルにおける、ある列(フィールド)に対しINDEXを設定した場合、 検索時、それはどう利用されるのでしょうか、というのが質問です。 例えば、 会員データベース ・会員番号:id ・年齢:age ※その他、複数のフィールドを持つ、とする。 上記の会員データベースにおいて、 CREATE INDEX idx ON tbl_member(id); という風に、tbl_memberテーブルに対し、 会員番号(id)をINDEXに設定したとします、 idは唯一無二の(ユニークな)データです。 この会員テーブルにおいて、 年齢(age)フィールドをもとに、40歳以上の会員を抽出(検索)したい場合、 INDEX(idが設定されている)はこの検索において、 どういう仕組みで活かされることになるのでしょうか? ageと無関係のidが、どう役に立つのか分からずにいる、ということです。 ネット上で色々調べたのですが、 あるフィールドをINDEXに設定した場合に、 それが検索時にどう活かされるのかについて説明されているページを 私は見つけることができませんでしたので、質問させて頂きました。 どうぞ、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • 条件に一致したデータの検索・抽出について

    エクセルで2つのデータから条件に一致したデータを検索・抽出がしたいのですが、うまく抽出することができないため、質問させていただきます データA |入荷日|商品番号|商品名|数量|金額| |1.1|1111|〇〇〇|10|10| |1.2|2222|◎◎◎|15|15| |1.3|3333|△△△|20|20| |1.4|4444|◆◆◆|10|10| データB |販売日|商品番号|商品名|販売数| |3.1|1111|〇〇〇|   | |3.2|    |AAA|100| |3.3|    |BBB|120| |3.1|2222|◎◎◎|   | |3.3|    |CCC|100| |3.1|3333|△△△|   | |3.1|4444|◆◆◆|   | データBから商品番号の一致したデータの一部を抽出してデータAに追加したいです (一部が難しいようなら1行そのまま抽出でも大丈夫です) 理想は |入荷日|商品番号|商品名|数量|金額|販売数| |1.1|1111|〇〇〇|10|10|   | |   |    |AAA|  |  |100| |   |    |BBB|  |  |120| |1.2|2222|◎◎◎|15|15|   | |   |    |CCC|  |  |100| |1.3|3333|△△△|20|20|   | |1.4|4444|◆◆◆|10|10|   | もしくは、関数を利用して以下の形にできれば、と思います |入荷日|商品番号|商品名|数量|金額|商品名|販売数|商品名|販売数| |1.1|1111|〇〇〇|10|10|AAA|100|BBB|120| |1.2|2222|◎◎◎|15|15|CCC|100|   |   | |1.3|3333|△△△|20|20|   |   |   |   | |1.4|4444|◆◆◆|10|10|   |   |   |   | データAをベースに、データBから重複データのうちすでにデータAにあるものを省き(1件目は重複データなので2件目以降)抽出する 1.データB商品番号重複しています。重複データの1件目はデータAと共通で、2件目以降を抽出したいです 2.データB商品番号の重複はそれぞれ違うため、1件も重複してないものもあれば3件ほど重複しているものもあります 3.データAは入荷日の範囲を指定したデータですが、データBは入荷日項目がないため抽出する必要のない内容・件数のデータもはいっています。その為、データAから抽出するのではなく、データAをベースにデータBから抽出がしたいです。 よろしくお願いします。

  • 条件検索の方法について

    フィールド (name) に「いちごがむ」「いちごじゅーす」「みかんがむ」「みかんじゅーす」がある場合、文字の先頭に『いちご』がつく情報を抽出するsql文は以下になります。 SELECT * FROM test WHERE name LIKE 'いちご%' では、フィールド (name) に「いちご」「みかん」があるとします。 検索文字『いちごがむ』(もしくは『いちごじゅーす』)からnameの「いちご」箇所を抽出するにはどのようなsqlを発行すればよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • MySQL
  • サイト内検索について

    HPの中に含まれるワードを抽出する作業をしなくてはならなくなりました。 そのHPは数千ページで構成されていて、手作業で1ページ1ページチェックしていると日が暮れてしまします。(+o+) 具体的な作業内容としては (1)http://ドメイン/○○/×× /・・・ の××以下のページ中に含まれる【キーワード】を抽出します。 (ドメイン/○○/△△/に含まれる【キーワード】は抽出対象になりません。) (2)【キーワード】が含まれているページのURLを抜き出します。 検索エンジンの機能などをうまく活用するとできるような気がしたのでですが、私には知識がなく手が出ません。 どなたか方法をご存知の方、よろしくお願い致します。m(__)m