- ベストアンサー
※ 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ワードで作成する方法も考えられます、そのケースの検索方法も解っていません。あわせて教えていただきたくお願いします。
- みんなの回答 (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が返る式です。
お礼
早速の回答ありがとうございました。 説明書を読んでいる(regexp)限りでは^や$はピンときませんが 実際の例となると身に付きますね。 ありがとうございました。それでは。