2016-11-22 10 views
1

私はSQL(php)に関する質問を受け取りました。テーブルにデータを挿入したいのですが。しかし、IF NOT EXIST値を使用したいと思います。 私が試したもの:PHP SQLが存在しない場合は

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

ありがとう:

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

私は、間違っているかわからないんだけど、私は次のエラーを取得するため。

+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); 

を、データベースには、列の一意性を保証します。

関連する問題