たとえば以下のようなteamtblテーブルで
チームに所属する人物をカンマ区切りでnameに登録してある場合

id | team | name
------------------------------------
1 | teamA | yamada,kobayasi,hayasi
2 | teamB | kobayasi,takizawa,komori
3 | teamC | takizawa,moriyama
4 | teamD | mori,yamada,kobayasi


「mori」さんが所属するチームのSELECTはどのようにしたらよいでしょうか?

SELECT * FROM teamtbl WHERE name LIKE '%mori%'

とした場合、「komori」「moriyama」がいるteamB、CまでSELECTされてしまいます。

A 回答 (2件)

yahoo知恵袋でも回答しましたが、テーブル設計に問題があります。


まず、「正規化」を勉強してください。
チームテーブルと選手テーブルテーブルを分ければ
select チームテーブル.team
from チームテーブル inner join 選手テーブル
on チームテーブル.team=選手テーブル.team
where 選手テーブル.name='mori'
で行けます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
既存のシステムなのでテーブル変更は不可能なのです。
今年から業務を引き継ぎ、テーブル設計に問題があるのは承知しています;;

いろいろ調べてみて、以下のような書き方にたどり着きましたが
どうでしょう?

SELECT * FROM teamtbl WHERE string_to_array(name,',') && ARRAY['mori']

お礼日時:2011/07/20 17:53

違ったら申し訳ありません。



単純に検索条件にカンマを含めて

SELECT * FROM teamtbl WHERE name LIKE '%mori,%'

ではSELECTできませんでしたか?
    • good
    • 0
この回答へのお礼

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

4 | teamD | yamada,kobayasi,mori

となる場合、SELECTされなくなってしまいます><

お礼日時:2011/07/20 17:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 好きだけどケンカばかり……そんな彼との結婚は?

    やたらとケンカが多いカップルというのはいる。それでも腐れ縁なのか長く交際し、いざ結婚しようと決めたときに、ふと思い悩む。こんなにケンカが多いのに、結婚して大丈夫? と。今回は「教えて!goo」に寄せられ...

  • ポンコツな日々:第125話「食べてもOK」

    日々のちょっとしたヘンな出来事を、1話完結形式の4コマで綴っていきます。時にするどく、時にやんわり、ありそうで無さそうな日常の1コマを切り取ってお届けします。

  • “罵声大会”に怒り心頭?名指しで苦情も……駅員泣かせの鉄道ファン

    時として人は趣味に没頭してしまうと、周囲に迷惑をかけてしまいがち。それが公共の場ならばなおさらである。「教えて!goo」に「何で鉄道ファンはマナーの悪い人が多いのでしょうか?」との質問を見つけた。鉄道愛...

  • たまランチ:第102話「ネコ好き」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • エルフ田さん:第125話「洗濯干しの『コツ』」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ