以下に示すように、いくつかのフィールドとサンプル レコードを含むデータベース テーブルがあります。
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
学生とテストの1つの組み合わせに対応する複数のレコードが存在する可能性があります(複数回の合格と不合格)