MySQL không cho phép if
logic, trừ khi bạn đang ở trong một khối lập trình (thủ tục, trình kích hoạt hoặc hàm được lưu trữ).
May mắn thay, bạn có thể làm điều tương tự với WHERE
logic:
INSERT INTO user
SELECT 'Rutvij', 'python', 25
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python')
UNION ALL
SELECT 'Kanzaria', 'python', 25
FROM DUAL
WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');
MySQL sẽ xử lý SELECT
trước INSERT
, vì vậy chỉ nên chèn một hàng.
Hoặc, bạn có thể thực hiện việc này dưới dạng hai INSERT
s nhưng theo thứ tự ngược lại:
INSERT INTO user
SELECT 'Kanzaria', 'python', 25
FROM DUAL
WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');
INSERT INTO user
SELECT 'Rutvij', 'python', 25
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');