我有一张 table 。它有两列 class_id
和 student
.列学生是学生列表。学生列的数据类型为 varchar
.我想编写一个 SQL 查询来返回行,其中学生列是较大列表的子集,例如 ["A", "B", "C", "D", "E", "F", "G"]
class_id student
1 ["A","B"]
2 ["G","K","E"]
3 ["A","B","I"]
对于上面的例子,我的查询应该只返回一行 class_id 1
.这是我到目前为止所拥有的
select * from A where student in ("A", "B", "C", "D", "E", "F", "G")
但它不起作用。
最佳答案
这并没有回答你的问题,但它确实显示了应该如何做到这一点。将您的数据写为:
class student
1 A
1 B
2 G
2 K
2 E
3 A
3 B
3 I
现在,您可以回答诸如“A 正在参加哪些类(class)?”之类的问题。SELECT UNIQUEROW class FROM A WHERE student='A'
和“A 和 B 一起上哪些类(class)?”SELECT class, COUNT(*) AS count FROM A WHERE student IN ('A','B') GROUP BY class HAVING count = 2;
关于mysql - 如何在 MySQL 中将字符串列读取为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68249883/