在mysql数据库中,有时候我们需要存储一个字段可能有多个值的情况,这时候我们可以使用以下方法:
1. 多个值使用逗号分隔例如,我们有一张学生表,一个学生可能参加了多个活动,我们可以将活动id使用逗号分隔进行存储。CREATE TABLE student (id INT PRIMARY KEY,name VARCHAR(20),activity_ids VARCHAR(100));INSERT INTO student VALUES (1, '张三', '1,2,5');INSERT INTO student VALUES (2, '李四', '3,4,7');
使用逗号分隔的方法简单易实现,但存在以下缺点:
不易于查询不易于维护,修改,删除某个值时需要进行字符串操作不易于保证数据的规范性和正确性2. 使用json格式存储mysql5.7及以上版本支持json格式存储,我们可以将多个值以json格式进行存储。CREATE TABLE student (id INT PRIMARY KEY,name VARCHAR(20),activities JSON);INSERT INTO student VALUES (1, '张三', '["1","2","5"]');INSERT INTO student VALUES (2, '李四', '["3","4","7"]');
使用json格式的方法优点如下:
易于查询易于扩展保证数据的规范性和正确性但是使用json格式的方法也存在缺点:
不支持索引存在一些特殊字符的转义问题有些运算不支持json格式的字段因此在使用时需要根据实际情况进行权衡选择。