この時点でデータの形式を変更する傾向があるかどうかはわかりませんが、データベースを構造化することをお勧めします (これにより、質問する情報の種類のクエリが大幅に簡素化されます) は次のようになります。
CREATE TABLE `student_attendance` (
`student` INT(11) NOT NULL,
`class` DATETIME NOT NULL,
`attended` BOOLEAN NOT NULL,
PRIMARY KEY (`student`,`class`)
)
次に、学生が出席した日数を照会するには、次のようにします。
SELECT COUNT(*)
FROM `student_attendance`
WHERE `student` = '1'
AND `attended` = TRUE;
もちろん、あなたが達成しようとしていることを正確に知らなければ、これが完全に適切であるとは言えません。データを保存するために使用している形式は、あなたの人生を不必要に困難にするように思えますが (異なるデータポイントを 1 つの列に結合しています。それはノーノーです)、これは改善だと思います.
編集: より正確に言うと、(日付と時刻ではなく) 日付と期間を保存します。例えば:
CREATE TABLE `student_attendance` (
`student` INT(11) NOT NULL,
`class_date` DATE NOT NULL,
`class_period` TINYINT(4) NOT NULL,
`attended` BOOLEAN NOT NULL,
PRIMARY KEY (`student`,`class_date`,`class_period`)
)