2011-08-06 10 views
0

私は何をしようとしているのか分かりませんが、分かりません。私がやっているサイトでは、「ボクシング」、「体重減少」、「持久力」などのようないくつかのカテゴリを選択することができます...これらはすべてカンマで区切られ、メンバーテーブルの1つのテキストフィールドに座ります。MySQL TEXTフィールドで複数のカテゴリをコンマで区切って検索する

今私がやりたいことは、複数のカテゴリを一度に(耐久性とボクシングのように)どのように検索し、どちらか/両方のカテゴリフィールドを持つすべてのメンバーを見つけることです。

私はprofile_specialising IN( 'Cat1'、 'C​​at2'、 'C​​at3')...のようなものを考えましたが、profile_specialisingフィールドにdb内に1つ以上のカテゴリ/フィールドがある場合は動作しません。

複数のカテゴリを持つフィールドで複数のカテゴリを検索することができます。

+1

最初はコンマ区切りの文字列であってはいけません。 "member_id"と "category"列を持つ別のテーブルが必要です。 –

+0

データモデルを標準化します。自分のマイクロデータベースをデータベースに書き込もうとしないでください。 –

答えて

0

カテゴリを別のテーブルに配置し、3つ目のテーブルcategories_to_membersを持つメンバーに関連付けることをお勧めします。しかし、仮説を立てたままにしておきたい場合は、このようになります。

SELECT * FROM members WHERE category LIKE '%cat%' OR category LIKE '%dog%' 

これに固有の問題があります - LIKE '%cat%'は「緊張型」と同様に一致します「猫。」カンマをLIKEに追加することでこれを解決しようとするのは、IMHOよりも面倒です。

関連する問題