我有一個問題,想要創建一個查詢,如果字段存在,將會更新,如果沒有,則插入新的查詢。問題是,ID不是唯一的,所以我不能使用ON DUPLICATE KEY UPDATE
如果數據存在UPDATE else INSERT SQL查詢 - 沒有外鍵
我試圖IF EXISTS解決方案
IF EXISTS (select * from wordpress.wp_4_postmeta where post_id=3466 and meta_key='_job_expires')
THEN
update wp_4_postmeta set meta_value='2017-06-25' where post_id=3466 and meta_key='_job_expires'
ELSE
insert into wordpress.wp_4_postmeta (post_id,meta_key,meta_value) values (3466,'_job_expires','2017-09-25')
,並試圖ROWCOUNT
UPDATE wordpress.wp_4_postmeta
SET meta_value='01-01-2685'
WHERE post_id=3471
IF @@ROWCOUNT = 0
INSERT INTO wordpress.wp_4_postmeta (post_id,meta_key,meta_value)
VALUES (3471,'_job_expires','2017-09-25')
,但沒有運氣。我怎麼能在一個查詢中做到這一點?
我還附加了數據庫表的圖片,看看發生了什麼。 post_id不是唯一的,可以有許多與不同的meta_key-s相同的post_id。
這也試過,用ON DUPLICATE KEY
但沒有運氣
insert into wordpress.wp_4_postmeta (post_id, meta_key, meta_value)
values (3466, '_job_expires', '2011-06-25')
on duplicate key update meta_value='2011-06-25';
在畫面看到
用你正在使用的數據庫標記你的問題。 –
SQL中沒有'IF'。你正在使用哪種DBMS產品? –
你可以用MERGE – romulus001