• ベストアンサー

MySQL SELECT文についての質問

sql文について困っているので質問させてください。 以下のデータがあるとします。 番号  フィールド1   フィールド2 ------------------------------------ 1        0       あ 2        1       う 3        0       か 4        0       こ 5        1       た 6        0       ね 7        1       も 8        0       わ フィールド1が1で[あ行]であれば フィールド2が[あ行]である番号を取得し その件数を取得したいのです。 つまりクエリの実行結果を以下のようにしたいです。 番号  フィールド1   フィールド2 ------------------------------------ 1        0       あ 2        1       う 件数2件 mysqlのバージョンが4.0.22なのでサブクエリが使えません。 サブクエリを使わないで上記の結果を得ることはできるのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • fire--
  • ベストアンサー率49% (146/293)
回答No.2

最初のWHERE(直後のORを除いて以下ならば問題ないはずです。 SELECT COUNT(*) FROM 会員テーブル WHERE (名前頭文字 = 'あ' OR 名前頭文字 = 'い' OR 名前頭文字 = 'う' OR 名前頭文字 = 'え' OR 名前頭文字 = 'お' ) AND 会員フラグ = 1

lepin
質問者

お礼

解決しました! すごい単純ミスでした、、、 昨日から悩み続けてたので助かりました ありがとうございました<(._.)>

その他の回答 (1)

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

>フィールド1が1で[あ行]であれば >フィールド2が[あ行]である番号を取得し >その件数を取得したいのです。 のところが何を言っているかよくわかりません。 単純にあ、か、さ・・・行ごとに集計すればいい のではないのですか? フィールド1はどうやってつかっているのでしょう・・・

lepin
質問者

補足

すみません、説明不足でした。 番号  会員フラグ   名前頭文字    名前 ------------------------------------------------------ 1        0       あ    あいうえお 2        1       う    うえお 3        0       か    かきくけこ 4        0       こ    こ 5        1       た    たちつてと 6        0       ね    ねの 7        1       も    も 8        0       わ    わ 9        1       い    いうえお フィールド1は会員であるかないか(0=非会員、1=会員)として使用 [あ行]の会員のみを抽出し、その件数を取得したいのです。 クエリの実行結果 番号  会員フラグ   名前頭文字    名前 -------------------------------------------------- 2        1       う    うえお 9        1       い    いうえお 「件数2件」 ↓下記のSQL文も考えてのですが、 こうしてしまうと[あいうえお]で引っかからなかった場合 会員フラグ=1が全部取得されてしまいます。 (当たり前ですが...) SELECT COUNT(*) FROM 会員テーブル WHERE 会員フラグ = 1 OR 名前頭文字 = 'あ' OR 名前頭文字 = 'い' OR 名前頭文字 = 'う' OR 名前頭文字 = 'え' OR 名前頭文字 = 'お' ↓下記もダメでした。 SELECT COUNT(*) FROM 会員テーブル WHERE ( OR 名前頭文字 = 'あ' OR 名前頭文字 = 'い' OR 名前頭文字 = 'う' OR 名前頭文字 = 'え' OR 名前頭文字 = 'お' ) AND 会員フラグ = 1 ご教授くださると助かります。 よろしくお願いします。

関連するQ&A