匹配逗号分隔值来自mysql中的字符串

时间:2014-10-18 09:52:29

标签: mysql

我有一个表job_registration具有以下结构

id     name    email     keyskills
1      A       a@a.in    JAVA,SQLSERVER
2      B       b@b.in    JAVA,PHP,MYSQL,SQLSERVER
3      C       c@c.in    MYSQL,SQLSERVER

我想要获取拥有像SQLSERVER这样的键盘技能的人的电子邮件。请建议

先谢谢

2 个答案:

答案 0 :(得分:1)

使用FIND_IN_SET

select email
from job_registration 
where find_in_set(keyskills, 'SQLSERVER') > 0
and find_in_set(keyskills, 'JAVA') > 0

但实际上,通过更改表结构并仅在列中存储单个值,您会更好。更好的表设计将使用3个表

job_registration table
----------------------
id     
name    
email


skills table
------------
id
name


user_skills table
-----------------
user_id
skill_id

答案 1 :(得分:1)

使用REGEX与列中的文本匹配

SELECT email
FROM job_registration
WHERE keyskills REGEXP 'SQLSERVER'