Ændre ikke dit DB-design under kørsel, men design det på en måde, så du vil ændre dataene og ikke strukturen.
Du kunne have to borde. En kaldet Student
med kolonner rollno
og name
, måske PK på rollno
hvis det er unikt.
Så har du en anden tabel kaldet Thing
(ethvert passende navn, men jeg ved ikke, hvad dine data handler om) med tre kolonner when
(datotid), value
(ethvert passende navn) (CHAR(1)) og student
(samme type som rollno
).
Definer PK over både when
og value
for at sikre, at hver elev kun har én værdi pr. dato. Definer en FK fra Thing.student
til Student.rollno
. Nu sørger din DB for at holde dine data (for det meste) konsistente.
Definer indekser afhængigt af dine behov for valg, indsættelser og opdateringer over de forskellige kolonner.
For at forespørge skal du slutte dig til begge tabeller for at få det ønskede resultat, f.eks.
select s.name, t.value
from Student s
left join Thing t on t.student = s.rollno
where t.when == 'whenever'
(Jeg er ikke sikker på mysql-dialekten, så måske er der brug for nogle flere citater. Du er velkommen til at redigere.)