2016-11-22 33 views
1

我有一個關於SQL(PHP)的問題,我想INSERT數據在我的表中。但我想使用IF NOT EXIST值。 我已經試過什麼:PHP SQL如果不存在將不會工作

INSERT INTO vrienden (id, userid, vriendmetid, accepted) VALUES (null, '1', '20', '0') WHERE NOT EXISTS (SELECT * FROM vrienden WHERE userid='1' AND vriendmetid='20') 

我不知道什麼是錯的,因爲我得到以下錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT * FROM vrienden WHERE userid='1' AND vriendmetid='20')' at line 1

感謝。

+2

INSERT'沒有WHERE – Qirel

+0

只需在表中添加一個唯一鍵,嘗試插入,然後等待插入失敗。 – bassxzero

回答

2

你想insert . . . select,不insert . . . values

INSERT INTO vrienden (id, userid, vriendmetid, accepted) 
    SELECT x.* 
    FROM (select null as id, '1' as userid, '20' as vriendmetid, '0' as accepted) x 
    WHERE NOT EXISTS (SELECT 1 FROM vrienden v WHERE v.userid = x.userid AND v.vriendmetid = x.vriendmetid); 

然而,你可能不應該在INSERT這樣做。相反,創建唯一索引/約束:

create unique index unq_vrienden_userid_vriendmetid on vrienden(userid, vriendmetid); 

這樣,數據庫將確保列的唯一性,因此應用程序不必。