2017-05-30 5 views
0

私はすべての人が1つまたは複数の国を持つことができる人員データベースを持っています。複数の国のドロップダウンリストから国を追加することができます。 は人が、この列全体に複数の値がある場所をすべて選択してください

name country 
john USA, UK, Poland 
joe USA 
Jack Germany 

ようなことができ、ユーザは、私は、ユーザーの選択に基づいて人々をフィルタリングしようとしています<% =国%> の値を変更することで、人々を絞り込むことができます。私はこのクエリ

SELECT * 
FROM `personnel` 
WHERE <%= country %> LIKE `country` 
ORDER BY `industry` ASC, `name` ASC 

問題は一国でこの選択フィルター行のみ(人)であるを使用しています、そして、それはより多くの、1つの国を持っている人は表示されません。 私は=ではなくLIKEの使用しようとしましたが、その1あなたはLIKE文にを追加する必要が

+4

データ構造を修正しました。PersonnelCountryという表があり、1人の人と国ごとに1行あります。 –

+0

DBは人事、私の悪いです。はい、すべての人が1つの行を持ち、国の列には1つまたは複数の国を持つことができます – k185

+0

しかし、最良の解決策は、@ GordonLinoffが提案したようにテーブル構造を正規化することです。 – Shadow

答えて

0

もうまくいきませんでした。 LIKE '%country%'
は、前後に何があっても、すべての文字列で検索することができます。
「国」を好きな人は、単一国の人のみを表示します。
乾杯

関連する問題