入住此IF-statement語法:
試試這個:
IF EXISTS (SELECT * FROM comments WHERE user_id='2' AND course_id='1') THEN
UPDATE comments SET page1='exists' WHERE user_id='2' AND course_id='1';
ELSE
INSERT INTO comments (user_id,course_id,page1) VALUES ('2','1','inserted');
OR
按照我,你必須做出的實踐BEGIN ... END塊,如下圖所示。
IF EXISTS (SELECT * FROM comments WHERE user_id='2' AND course_id='1') THEN
BEGIN
UPDATE comments SET page1='exists' WHERE user_id='2' AND course_id='1';
END
ELSE
BEGIN
INSERT INTO comments (user_id,course_id,page1) VALUES ('2','1','inserted');
END
我上面的查詢可以在程序(PL-SQL)中使用。如果你想使用上述SQL 查詢然後使用下面的代碼:
您user_id & course_id
列創建UNIQUE約束,如果一個尚不存在:
ALTER TABLE comments ADD UNIQUE (user_id,course_id);
使用INSERT ... ON DUPLICATE KEY UPDATE:
INSERT INTO comments (user_id,course_id,page1)
VALUES ('2','1','inserted')
ON DUPLICATE KEY UPDATE page1='exists'
您是否試圖將其作爲一個獨立的SQL(在這種情況下,在user_id和course_id上使用'INSERT .... ON DUPLICATE KEY UPDATE')將會更容易)作爲存儲過程中的行? – Kickstart
我試圖通過phpMyAdmin運行這個SQL查詢 – user3402227
然後,這不是有效的SQL。 IF是流控制語句,並且對於原始SQL查詢,不存在要控制的流。 – Kickstart