在工作中,经常会遇到一对多的关系,比如用户和爱好。
想要在 Mysql 中保存这种关系,一般有两种方式:
文章来源地址https://www.toymoban.com/diary/sql/210.html
第一种是建立一张用户爱好表 user_hobby(user_id, hobby_id),这样一条user_id就会存在多条记录。
第二种方式,直接在用户表中增加 hobby_ids 字段,将hobby_id拼接成用逗号分隔的字符串保存起来。
文章来源:https://www.toymoban.com/diary/sql/210.html
那么问题来了,如果采用第二种方式的话,查询的时候要如何处理呢?下面介绍几种常见的处理方式。
一、like
select * from user where hobby_ids like '%1%';
二、find_in_set
select * from user where find_in_set('1', hobby_ids);
select * from user where find_in_set('1', hobby_ids) or find_in_set('2', hobby_ids);
三、regexp
select * from user where hobby_ids regexp '(^|,)(1|2)(,|$)';
到此这篇关于Mysql 逗号分隔的字段查询的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!