Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL không hỗ trợ WHERE trong INSERT - Hãy dùng UPDATE

Sai lầm thường gặp

MySQL không cho phép mệnh đề WHERE trong câu lệnh INSERT. Cú pháp sau là SAI:

-- SAI - MySQL không hỗ trợ
INSERT INTO bang (cot) VALUES ('gia_tri') WHERE dieu_kien;

Giải pháp đúng: Dùng UPDATE

UPDATE ten_bang 
SET cot1 = gia_tri1, cot2 = gia_tri2, ...
WHERE dieu_kien;

Ví dụ thực tế

Dữ liệu ban đầu

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

Cập nhật bản ghi StudentId = 4

mysql> UPDATE addWhereClauseDemo 
    -> SET StudentName = 'Maxwell', StudentPassword = 'Maxwell44444' 
    -> WHERE StudentId = 4;

Kết quả

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

INSERT có điều kiện: Dùng INSERT ... SELECT

INSERT INTO bang_moi (cot1, cot2)
SELECT cot1, cot2 FROM bang_cu WHERE dieu_kien;

Tóm lại: INSERT thêm mới, UPDATE sửa có điều kiện. Không gộp được WHERE vào INSERT VALUES.