Jangan ubah desain DB Anda saat runtime, tetapi rancang sedemikian rupa sehingga Anda akan mengubah data, bukan strukturnya.
Anda bisa memiliki dua meja. Satu bernama Student
dengan kolom rollno
dan name
, mungkin PK di rollno
jika unik.
Kemudian buat tabel lain bernama Thing
(nama yang cocok, tapi saya tidak tahu tentang data Anda) dengan tiga kolom when
(datetime), value
(nama yang sesuai) (CHAR(1)) dan student
(tipe yang sama dengan rollno
).
Tentukan PK di kedua when
dan value
untuk memastikan bahwa setiap siswa hanya memiliki satu nilai per tanggal. Tentukan FK dari Thing.student
ke Student.rollno
. Sekarang DB Anda akan menjaga data Anda (kebanyakan) tetap konsisten.
Tentukan indeks tergantung pada kebutuhan Anda untuk memilih, menyisipkan, dan memperbarui pada kolom yang berbeda.
Kemudian untuk kueri, gabungkan kedua tabel untuk mendapatkan hasil yang diinginkan, mis.
select s.name, t.value
from Student s
left join Thing t on t.student = s.rollno
where t.when == 'whenever'
(Saya tidak yakin dengan dialek mysql, jadi mungkin diperlukan beberapa kutipan lagi. Silakan edit.)