我有一个包含一些字段和示例记录的数据库表,如下所示:
Name Test Result Other_fields
A English P x
B Maths F x
C English P x
B English P x
A Maths F x
D English P x
C Biology F x
A Biology P x
B Biology F x
现在实际表包含更多种类的测试。
我想要实现的是找到通过逗号分隔字符串中指定的所有测试的学生的计数/列表(以及其他字段中对学生来说是唯一的相应值......比如他的年龄、性别等) . 该字符串显然是在运行时插入到查询中的。
现在,如果它是固定数量的测试,比如 2 个测试或 3 个测试,那么我可以为它编写一个查询。
但真正的问题是 CSV 字符串中的测试数量不固定。
有什么办法可以做到这一点?
PS:如果有人计划建议一个涉及使用 SQL IN 的答案,我可以用一些唯一的数字代替测试名称(作为测试 ID)。
编辑
显然,我并没有把自己说得很清楚。该表将包含大量测试的记录(例如 test1、test2、....test100)。CSV 字符串将包含其中一些测试(比如 2 或 3 或 4 个,但肯定多于 1 个)。我想要学生通过 CSV 字符串指定的所有测试的数据。
EDIT 2
可以有多个记录对应一个学生和一个测试的组合(多次通过和失败)