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

วิธีเพิ่มค่าคงที่ (Static Value) ใน INSERT INTO SELECT ของ MySQL

สามารถเพิ่มค่าคงที่ขณะ INSERT INTO ... SELECT ได้ 2 วิธี

วิธีที่ 1: ใส่ค่าตรงๆ ใน SELECT

INSERT INTO table2(col1, col2, col3)
SELECT col1, col2, 'staticValue' FROM table1;

วิธีที่ 2: ใช้ User Variable

SET @staticValue = 20;
INSERT INTO table2(col1, col2, col3)
SELECT col1, col2, @staticValue FROM table1;

ตัวอย่างเต็ม

สร้างตารางแรก First_table:

mysql> CREATE TABLE First_table (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> FirstValue INT,
    -> SecondValue INT,
    -> PRIMARY KEY(Id)
    -> );

เพิ่มข้อมูล:

mysql> INSERT INTO First_table(FirstValue, SecondValue) VALUES(10,14),(12,13),(100,110),(45,55);

สร้างตารางที่สอง Second_table (มี 3 คอลัมน์):

mysql> CREATE TABLE Second_table (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Value1 INT, Value2 INT, Value3 INT,
    -> PRIMARY KEY(Id)
    -> );

กรณี 1: ใส่ค่า 45 ตรงๆ

mysql> INSERT INTO Second_table(Value1, Value2, Value3)
    -> SELECT FirstValue, SecondValue, 45 FROM First_table;

ผลลัพธ์

+----+--------+--------+--------+
| Id | Value1 | Value2 | Value3 |
+----+--------+--------+--------+
| 1  | 10     | 14     | 45     |
| 2  | 12     | 13     | 45     |
| 3  | 100    | 110    | 45     |
| 4  | 45     | 55     | 45     |
+----+--------+--------+--------+

กรณีที่ 2: ใช้ Variable

mysql> SET @staticValue = 20;
mysql> INSERT INTO Second_table(Value1, Value2, Value3)
    -> SELECT FirstValue, SecondValue, @staticValue FROM First_table;

ผลลัพธ์ (Value3 = 20)

+----+--------+--------+--------+
| Id | Value1 | Value2 | Value3 |
+----+--------+--------+--------+
| 1  | 10     | 14     | 20     |
| 2  | 12     | 13     | 20     |
| 3  | 100    | 110    | 20     |
| 4  | 45     | 55     | 20     |
+----+--------+--------+--------+