ここにいくつかのオプションがあります...
1)各グレードがビットに対応する整数としてグレードを格納します。グレード1=ビット0、グレード2 =ビット1、グレード3=ビット2など。その場合、グレード1、2、3は0x00000111(8)に対応し、グレード2、4は0x00001010(10)などに対応します。次に、クエリはAND比較を行うだけの簡単な問題になります...グレード2と4が選択されているすべての行(および場合によっては他の行)が必要な場合は、(grades&10)==true
のファイルから*を選択します。2)グレードが比較的少ない場合は、それぞれをブール列として保存できます。
3)成績を別のテーブルに保存してから、成績とファイルの関係を3番目の結合テーブルに保存します(多対多の関係であるため)。