Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menukar Nilai Lajur dalam MySQL Tanpa Menamakan Semula Lajur?

Bagaimanakah Saya Boleh Menukar Nilai Lajur dalam MySQL Tanpa Menamakan Semula Lajur?

Susan Sarandon
Lepaskan: 2024-12-05 21:48:13
asal
369 orang telah melayarinya

How Can I Swap Column Values in MySQL Without Renaming Columns?

Menukar Nilai Lajur dalam MySQL tanpa Menamakan Semula

Pertukaran nilai antara lajur dalam jadual MySQL boleh menjadi operasi yang berguna apabila lajur sedia ada memesan tidak lebih lama sejajar dengan keperluan anda. Walau bagaimanapun, mengubah suai struktur jadual untuk menamakan semula lajur mungkin tidak dapat dilaksanakan kerana sekatan kebenaran.

Sebaliknya, anda boleh menggunakan teknik berikut:

Kaedah 1: Menggunakan Pembolehubah Sementara

UPDATE swap_test SET x=y, y=@temp WHERE (@temp:=x) IS NOT NULL;
Salin selepas log masuk

Kaedah ini menggunakan pembolehubah sementara untuk memegang nilai satu lajur semasa mengemas kini yang lain. Walau bagaimanapun, ia tidak mengendalikan nilai NULL dengan berkesan.

Kaedah 2: Penyelesaian Elegan Dipin

UPDATE swap_test SET x=(@temp:=x), x = y, y = @temp;
Salin selepas log masuk

Pendekatan Dipin secara elegan menukar nilai, berfungsi sama baik dengan dan tanpa nilai NULL.

Kaedah 3: Menggunakan Silang Silang

UPDATE swap_test s1, swap_test s2 SET s1.x=s1.y, s1.y=s2.x WHERE s1.id=s2.id;
Salin selepas log masuk

Kaedah ini menggunakan silang silang antara jadual yang sama untuk melakukan pertukaran. Ia memerlukan kunci utama untuk hadir dalam jadual.

Contoh Skema Jadual

CREATE TABLE `swap_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `x` varchar(255) DEFAULT NULL,
  `y` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

INSERT INTO `swap_test` VALUES ('1', 'a', '10');
INSERT INTO `swap_test` VALUES ('2', NULL, '20');
INSERT INTO `swap_test` VALUES ('3', 'c', NULL);
Salin selepas log masuk

Dengan memilih kaedah yang paling sesuai berdasarkan struktur jadual dan kekangan anda, anda boleh berjaya menukar nilai lajur tanpa memerlukan penamaan semula lajur atau peningkatan kebenaran.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Nilai Lajur dalam MySQL Tanpa Menamakan Semula Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan