Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สลับข้อมูลระหว่างสองคอลัมน์ใน MySQL

เพื่อสลับข้อมูลระหว่างสองคอลัมน์ใน MySQL ให้ใช้แนวคิดตัวแปรชั่วคราวครับ

สร้างตารางตัวอย่าง (จะสลับ Name1 กับ Name2)

mysql> create table DemoTable (
    -> Name1 varchar(100),
    -> Name2 varchar(100)
    -> );
Query OK, 0 rows affected (0.58 sec)

เพิ่มข้อมูลตัวอย่าง

mysql> insert into DemoTable values('John Smith', 'Chris Brown');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('David Miller', 'Jone Doe');
Query OK, 1 row affected (0.16 sec)

แสดงข้อมูลทั้งหมด

mysql> select * from DemoTable;

ผลลัพธ์

+--------------+-------------+
| Name1        | Name2       |
+--------------+-------------+
| John Smith   | Chris Brown |
| David Miller | Jone Doe    |
+--------------+-------------+
2 rows in set (0.00 sec)

คำสั่งสลับข้อมูลระหว่างสองคอลัมน์

mysql> update DemoTable
    -> SET Name1 = (@tmpName := Name1), Name1 = Name2, Name2 = @tmpName;
Query OK, 2 rows affected (0.13 sec)
Rows matched: 2 Changed: 2 Warnings: 0

ตรวจสอบข้อมูลอีกครั้ง

mysql> select * from DemoTable;

ผลลัพธ์

+-------------+--------------+
| Name1       | Name2        |
+-------------+--------------+
| Chris Brown | John Smith   |
| Jone Doe    | David Miller |
+-------------+--------------+
2 rows in set (0.00 sec)

คำอธิบาย: ใช้ user variable @tmpName เก็บค่า Name1 เดิม แล้วมอบ Name2 ให้ Name1 และมอบ @tmpName ให้ Name2 ในคำสั่ง UPDATE เดียว