• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:select文での条件式記述方法)

select文での条件式記述方法

このQ&Aのポイント
  • テーブルのある項目(下記のFIELD-X)は数値とハイフォンで構成する文字列が一つのワードとして表されています。そのワードは複数個ある場合はカンマで区切られてデータ的には一つの文字列としてFIELD-Xに納められています。
  • FIELD-Xに19-29と1-3と22-444がある行を抽出する方法はどのようにSELECT文で記述すればいいのでしょうか?
  • 尚、FIELD-XをFIELD-1からFIELD-n個のカラムを持つ構成として1フィールド1ワードで作成する方法も考えられます、そのケースの検索方法も解っていません。あわせて教えていただきたくお願いします。

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

  • ベストアンサー
  • n09430515
  • ベストアンサー率52% (11/21)
回答No.1

FIELD-Xを別テーブルにワードごとに持つようにするのがRDBの本質(正規化といいます)ですが、今あるままでマッチするものを求めたいなら、次の手段となるでしょう。 select … where ( FIELD-X regexp '^19-29,|,19-29,|,19-29$' ) = 1 or ( FIELD-X regexp '^1-3,|,1-3,|,1-3$' ) = 1 or …; regexpの右の指定は正規表現で、FIELD-Xが「19-29,」で始まるか、「,19-29,」を含むか、「,19-29」で終わるなら1が返る式です。

american-1
質問者

お礼

早速の回答ありがとうございました。 説明書を読んでいる(regexp)限りでは^や$はピンときませんが 実際の例となると身に付きますね。 ありがとうございました。それでは。

関連するQ&A