mysql表字段存放多个id,怎么查询

`CREATE TABLE hr_job (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(50) NOT NULL DEFAULT '' COMMENT '职位名称',
  describe varchar(200) NOT NULL DEFAULT '' COMMENT '职位描述',
)`
CREATE TABLE `hr_resume` (
  `id` int(11) NOT NULL AUTO_INCREMENT,,
  `name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名',
  `job_id` varchar(50) NOT NULL DEFAULT '' COMMENT '应聘职位:hr_job表id 多个值使用英文逗号“,”',
)
hr_job

id   name    describe

1    UI设计     

2    web开发  

3    后端开发  
hr_resume 

id   name    job_id
 
1    张三    1,2,3
 
2    李四    1,3

这种存储形式要怎么查询呢?
比如我要查询应聘职位id 为 1 3的人。使用FIND_IN_SET 如果我传入的顺序是 3,1 就查询不出来了。

阅读 3.2k
4 个回答

find_in_set可以了解一下, 虽然有说效率低的.

用 union 可以实现

感觉这样的设计查询会更快啊

id name job_id
1 张三 1
2 张三 2
3 张三 3
4 李四 1
5 李四 3

原来的设计是为了节省存储空间吗

SELECT REPLACE('1,2,3', ',', '|') regexp REPLACE('1,3', ',', '|')
正则表达式实现交集

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题