• ベストアンサー

特殊な選択をWHEREで選択するには?

質問させていただきます。よろしくお願いします。 tata というテーブルに num というカラムがあります。このカラムにはauto_incrementで1からの数字が割り当ててあります。そのほかにも aba というカラムもあります。 行いたいことは WHEREを使用し abaでは mogehoge という値があり num というカラムでは一番小さい数字が入っているレコードのみを取得したいのですがうまくいきません。 どうぞよろしくお願いします。

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

  • ベストアンサー
回答No.1

select * from tata where aba = 'mogehoge' order by num limit 0, 1 MySQLのバージョンによってはEXISTS文などは利用出来ません。

itmedia_search
質問者

お礼

回答ありがとうございます。

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

その他の回答 (1)

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

ソートして一番上だけ抜き出せばいいでしょう SELECT * FROM `tata` WHERE `aba`='mogehoge' order by `num` asc limit 0,1

itmedia_search
質問者

お礼

回答ありがとうございます。

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

関連するQ&A

  • count関数の値をwhere句で使用する方法について

    宜しくお願い致します。 例えば、下記の様にデータを検索します。 select column1,count(column2) as column2_num from hoge_table group by column2_num すると、検索結果にはcolumn1のそのままの値と、column2の合計数が表示されると思います。 このcolumn2の合計数に対してwhere句で絞込みを行う方法はありませんか? asで定義した値をそのままwhere句で使用できないとの事なので、 select column1,count(column2) as column2_num from hoge_table where count(column2) = '1' group by column2_num とやってみたんですが、検索出来ませんでした。 ご存知の方、ご教授の程、宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • auto_incrementを使ってIDを生成するには

    auto_incrementを使用してIDを作成したいのですがいまいちよく分かりません。 行いたいことは たとえばテーブルにid name textというカラムがあります。idカラムにauto_incrementを使用してIDである数字を生成したいのですが、nameカラムにある値ごとにIDを作成したいと思っています。 分かりにくいと思いましが以下のような感じです。 +----+-------+ | id | name | +----+-------+ | 1 | goo | | 1 | yahoo | | 2 | goo | | 1 | google| | 2 | yahoo | | 3 | goo | | 2 | google| +----+-------+ のようにnameの値ごとに生成したいと思っています。 このようなカラムを作成するSQLをお願いいたします。

    • ベストアンサー
    • MySQL
  • where文について

    2008-10-28のような形式でMYSQLに生年月日を登録しています。 フォームのセレクトボックスにて誕生月のみを取得しlike文では なくwhere文でデータの読み込みを行いたいのですがどうやれば できるのでしょうか? 通常だと "SELECT * FROM テーブル名 where カラム名 = '200-10-28' " でいけると思うのですが誕生月のみの情報で "SELECT * FROM テーブル名 where カラム名 = '10' " とやっても無理ですよね^^; $_POST['birth_month']で誕生月を取得し数字は01~12までです。 ※取得は問題なくできておりわからないのがwhere文の書き方です。 できるだけシンプルな方法で行いたいのですがお分かりになる方が おりましたら是非ご教授お願い致します!

    • ベストアンサー
    • PHP
  • AUTO_INCREMENTについて教えてください

    ■質問1 PHPを使ってMySQLに接続しているのですが、 「AUTO_INCREMENT」指定しているIDの次の値を取得したいのですが、 どうすれば良いでしょうか? 用途としては、レコードを挿入する際、画像ファイルにレコードID名を付与したパスをつけたいのです。 <やりたいこと> 1.AUTO_INCREMENT指定しているIDの次の値を取得 2.画像ファイル名に付与 3.レコード挿入 この1を、どうやるか知りたいです ■質問2 「AUTO_INCREMENT」指定はどこに保存されているのでしょうか? 例えばレコードを削除した後、新たにデータ挿入する場合、 次の「AUTO_INCREMENT」値ではなく、削除した一番若い番号を利用することは可能でしょうか? ■質問3 質問2に関連しているのですが、DUMPデータを移行した際など、次の「AUTO_INCREMENT」値も新しいDBへ引き継がれるのでしょうか?

    • ベストアンサー
    • MySQL
  • 各値に自動的に数字を入力させるには?

    テーブル HOGE に id、name、number、hatenaというカラムがあります。 質問はnameに値が入れば自動的に1からの数字を id に入力できないでしょうか? auto_incrementを使用すれば可能なのですが、行いたいことはnameに入る各値ごとに入力することです。 例えばnameにgoogleが入れば1を、yahooが入れば1を、又googleが入れば2を、 msnが入れば1をといった感じに値ごとに数字をつけていくものです。 又、nameに入る値は不明で何が入ってくるかは分かりません。ただ同一なものであれば以前の数字に1を足しidに入力させるものです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • AUTO_INCREMENTを2つ設定する方法

    お世話になっております。 現在すでに投稿されている記事を複製する処理をphpで作成しています。 linkmetaというテーブル内のid、link_idというカラムがありidはAUTO_INCREMENTとなっています。 link_idにもAUTO_INCREMENTを設定したいのですが調べるとそれは仕様により不可能ということがわかりました。 現在link_idにもidと同じ値を自動的に挿入したいと考えております。 別の手段でlink_idにAUTO_INCREMENTもしくは同様のINSERTを行う方法はありませんでしょうか? idの数値を取得しようと考えたのですが INSERT前ではAUTO_INCREMENT後の値は取得できない事に後から気づきました。 この様に1つのテーブルに値が重複しない様にする処理は皆様はどのように行なっているのでしょうか? 良い方法は思いつかずに困っております。 どなたかご回答くださいませ。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • mysqlで部分的にオートインクリメントしたい

    mysqlを使用しております。 下記のようなテーブルを作りたいと思っているのですが、 親通し番号が同じ行についてのみ1からオートインクリメントすることは出来るのでしょうか? どなたかアドバイス頂ければと思います。 -------------------------------------------------------------------------------------- column1:親番号 column2:子通し番号   ・   ・   ・ column1:1 column2:1 ←カラム1が同じ値のとき、カラム2はinsertされた順に増えていく column1:1 column2:2 column1:1 column2:3 column1:2 column2:1 ←カラム1が増えたとき、カラム2は1に戻りインクリメントされていく。 column1:2 column2:2 column1:2 column2:3

    • ベストアンサー
    • MySQL
  • オートインクリメントの最新の値

    いずれかの方法で、オートインクリメントで記録している数字の最新のものを取得したいです。 (PHP/MySQL) 考えているのは オートインクリメントのフィールドの中から一番大きいものを取得 という方法ですが、WHEREの条件式をどのように書けばいいかがわかりません。 また、他にいい方法があれば教えていただきたいです。

    • ベストアンサー
    • MySQL
  • テーブルの最後(最新)のレコードを抽出したい

    宜しくお願いします。 PHP MYSQL の組み合わせで使っています 以下のようにして、最後のレコードを取り出したいのですが まったく違う事をしているのかもしれません。 $sql =" select * from テーブル where フィールド='max' " ; フィールドはauto_incrementで番号を振っています。 これで最大のつもりなのですが・・・。 他にも、レコードを入れた時間も記録したフィールドがあるのですが どうしてよいか?判りません。 テーブルの最新のレコードを出したいのです。 **その中の一つのフィールドを取り出すのですが、   それはうまくいっているみたいです    (max の所に数字を入れると表示します) お手数かけますが、どなたかご教授お願いいたします。

    • ベストアンサー
    • MySQL
  • テーブルで一番古いレコードだけをSELECTしたい

    テーブルで一番古いレコードだけをSELECTしたいのですが、どうすれば良いでしょうか? ■背景 ・テーブルからデータを取得しようと思ったら、「id」及び「autoincrement」に該当するカラムがありませんでした ・日付に該当するカラムもありません ・「phpMyAdmin」で確認すると、いつも同じ並び順で表示されるので、格納したレコード順で表示されているのではないかと思いました ■質問 ・この時、そのテーブルで一番古いレコードだけをSELECTしたいのですが、どうすれば良いでしょうか? ・where?

    • ベストアンサー
    • MySQL