2017-05-30 36 views
0

我有一个人员的数据库,每个人可以有一个或多个国家。这些国家可以从多选下拉到db添加。 一个人也能像这样选择所有从哪里有多个值的列

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

用户可以通过改变<%=国家%> 值我试图筛选基于用户的选择过滤人的人。我使用这个查询

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

的问题是一个国家该选择滤波器仅行(人),并且它不示人谁拥有一个以上的国家。 我试图用=代替LIKE但一个也没工作

+4

修复你的数据结构,所以你有一个名为'PersonnelCountry'的表,每个人和国家一行。 –

+0

db是人员,我的不好。是的,每个人都有一行,在国家列中他们可以有一个或多个国家 – k185

+0

但最好的解决方案是按照@GordonLinoff的建议规范化表结构。 – Shadow

回答

0

您需要在LIKE句子添加LIKE '%country%'
允许搜索所有的字符串,不管之前和之后有什么。
如果你喜欢“国家”,它只显示单个国家的人。
欢呼声