我的场景是,我有一个表来存储学校的类(class)。每个类都是表中的一行。其中的字段之一是提供该类(class)的类(class)周期。有些类(class)仅提供一个学期,有些提供多个学期,有些则每个学期提供。
在我包含数据(类(class)周期数据)的 CSV 中,它存储为逗号分隔值的列表,不带空格。例如,代数运行周期 1、2、3 和 4,因此在 CSV 中表示为“1,2,3,4”。
我的问题是,例如,当查询在第三个周期内运行的所有类时,诸如 SELECT * FROM `classes` WHERE `period` LIKE '1'
之类的内容将不会出现找到它。添加通配符 %
字符没有帮助,因为它还会选取在第 11 周期期间运行的类。
如何在单元格中存储这些多个值并查询它们?
编辑:这是我提供的所有数据。有 200 多个类,因此将所有数据重新格式化到另一个表中并使用 JOIN(这是执行此操作的正确方法)将非常耗时。我正在寻找一种方法来处理我已有的格式的数据。
最佳答案
最好通过创建类别和周期之间的关系表来完成此操作。
create table class_period(
class_id int,
period int
)
然后就可以查询周期为1的类(class)了
select * from classes c join class_period p on c.id = p.class_id where p.period = 1
关于MySQL - 单元格中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59160134/