Tôi có thể thấy rằng bạn đã giải quyết được vấn đề của mình, nhưng để trả lời câu hỏi ban đầu của bạn:
REPLACE INTO
không có WHERE
mệnh đề.
REPLACE INTO
cú pháp hoạt động chính xác như INSERT INTO
ngoại trừ việc mọi hàng cũ có cùng khóa chính hoặc khóa duy nhất sẽ tự động bị xóa trước khi hàng mới được chèn.
Điều này có nghĩa là thay vì WHERE
, bạn nên thêm khóa chính vào các giá trị đang được thay thế để hạn chế cập nhật của bạn.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
... sẽ cung cấp kết quả tương tự như ...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
... hoặc chính xác hơn:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);