Tukar Nilai Lajur dalam MySQL tanpa Mengubah Struktur Jadual
Soalan:
Bolehkah saya menukar nilai dalam dua lajur jadual MySQL tanpa mengubah suai struktur jadual? Menamakan semula lajur bukan pilihan kerana sekatan kebenaran pengguna.
Jawapan:
Ya, adalah mungkin untuk menukar nilai lajur dalam MySQL tanpa mengubah struktur jadual menggunakan pertanyaan kemas kini. Berikut ialah tiga kaedah:
Kaedah 1:
UPDATE table SET x=y, y=@temp WHERE (@temp:=x) IS NOT NULL;
Kaedah ini menggunakan pembolehubah sementara untuk menahan nilai satu lajur semasa kemas kini. Ia memerlukan kedua-dua lajur mempunyai nilai bukan NULL.
Kaedah 2:
UPDATE table SET x=(@temp:=x), x = y, y = @temp;
Kaedah ini dianggap lebih elegan dan mengendalikan kedua-dua nilai NULL dan bukan NULL .
Kaedah 3:
UPDATE table s1, table s2 SET s1.x=s1.y, s1.y=s2.x WHERE s1.id=s2.id;
Kaedah ini menggunakan sambung sendiri untuk menukar nilai lajur, menjadikannya sesuai untuk jadual dengan kunci utama. Ia juga mengendalikan nilai NULL.
Nota:
Setiap kaedah mempunyai kelebihan dan batasan tersendiri. Pilih kaedah yang paling sesuai dengan keperluan khusus anda dan ciri data.
Atas ialah kandungan terperinci Bagaimana Menukar Nilai Lajur dalam MySQL Tanpa Mengubah Struktur Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!