この時点でデータの書式を変更するのは確かではありませんが、データベースを構造化することをお勧めします。あなたはについての質問情報の種類)このようになります:
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;
を、どのようなEXAについての詳細を知らなくても、 ctlyあなたが達成しようとしている、私はこれが完全に適切であることを確認することはできません。あなたのデータを格納するために使用しているフォーマットは、あなたの人生を不必要に困難にしているように見えますが(異なるデータポイントを1つのカラムに結合する、それはno-noです)、これは改善だと思います。
編集:より正確には、(日付と時刻ではなく)日付と期間を保存します。例:
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`)
)
なぜデータを「月曜日{9,12}、木曜日{14,17}」の形式で保存していますか? – Matthematics
文字列 'Monday {9,12}、Thursday {14,17}'から動的に14と17を抽出する方法を聞いていますか?その場合は、正規表現を使用します。 – Matthematics