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

เพิ่มเงื่อนไข WHERE ในคำสั่ง INSERT MySQL? ใช้ UPDATE แทน

ไม่สามารถใช้ WHERE ใน INSERT ได้โดยตรง ต้องใช้ UPDATE แทนสำหรับแก้ไขข้อมูลที่มีอยู่แล้ว

ไวยากรณ์ UPDATE

UPDATE yourTableName
SET yourColumnName1 = yourValue1, yourColumnName2 = yourValue2, ...
WHERE yourCondition;

สร้างตารางตัวอย่าง

mysql> create table addWhereClauseDemo (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(30),
    -> StudentPassword varchar(40)
    -> );
Query OK, 0 rows affected (0.45 sec)

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

mysql> insert into addWhereClauseDemo(StudentName,StudentPassword) values('John','John123456');
mysql> insert into addWhereClauseDemo(StudentName,StudentPassword) values('Carol','99999');
mysql> insert into addWhereClauseDemo(StudentName,StudentPassword) values('Bob','OO7Bob');
mysql> insert into addWhereClauseDemo(StudentName,StudentPassword) values('David','David321');

แสดงข้อมูลก่อนอัปเดต

mysql> select * from addWhereClauseDemo;

ผลลัพธ์:

+-----------+-------------+-----------------+
| StudentId | StudentName | StudentPassword |
+-----------+-------------+-----------------+
| 1         | John        | John123456      |
| 2         | Carol       | 99999           |
| 3         | Bob         | OO7Bob          |
| 4         | David       | David321        |
+-----------+-------------+-----------------+

อัปเดตข้อมูลที่ StudentId = 4

mysql> UPDATE addWhereClauseDemo
    -> SET StudentName = 'Maxwell', StudentPassword = 'Maxwell44444'
    -> WHERE StudentId = 4;
Query OK, 1 row affected (0.18 sec)

ตรวจสอบหลังอัปเดต

mysql> select * from addWhereClauseDemo;

ผลลัพธ์:

+-----------+-------------+-----------------+
| StudentId | StudentName | StudentPassword |
+-----------+-------------+-----------------+
| 1         | John        | John123456      |
| 2         | Carol       | 99999           |
| 3         | Bob         | OO7Bob          |
| 4         | Maxwell     | Maxwell44444    |
+-----------+-------------+-----------------+

สรุป

  • INSERT ใช้สำหรับเพิ่มแถวใหม่ ไม่มี WHERE
  • UPDATE ใช้สำหรับแก้ไขแถวที่มีอยู่ ต้องมี WHERE (มิฉะนั้นจะอัปเดตทุกแถว)
  • ถ้าต้องการ "เพิ่มถ้ายังไม่มี แก้ไขถ้ามีอยู่" ให้ใช้ INSERT ... ON DUPLICATE KEY UPDATE