2017-07-22 5 views
-1

私はスタックで検索しますが、誰も最終回答に達しませんでした。 私のクエリはこれです:実行すると構文エラーどこにも存在しません

 
    INSERT INTO user (username,frequence,autoSend) 
    VALUES('feri2','3','1') 
    WHERE NOT EXISTS (SELECT * FROM user WHERE username='feri2') 

、私はエラーを解析する構文を受け取る:

SQLSTATE[42000]: Syntax error or access violation: 1064 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 user WHERE username='feri2')' at line 1 

私は、どこに問題がある、私はそれを修正することができます方法がわかりませんか?

+1

SELECTを持っていない限り、WHERE with INSERTを使用することはできません。 –

+0

@ GarrGodfrey私は別のテーブルでそれを行い、それは私のために働きます! – handerianous

答えて

2

あなたは次のことをしようと、少し構文を変更する必要があります。

INSERT INTO user (username,frequence,autoSend) 
SELECT * FROM (SELECT 'feri2','3','1') AS `values` 
WHERE NOT EXISTS (
    SELECT username FROM user WHERE username='feri2' 
) LIMIT 1; 
0

あなたが重複するユーザーをしたくない場合、あなたはおそらくusername列に一意のインデックスを持つ必要があります。それを追加すると、次のように簡単に追加できます。

INSERT IGNORE INTO user (username,frequence,autoSend) 
VALUES('feri2','3','1') 

すでにユーザーがいれば、何もしません。

+0

回答ありがとうございます。しかし、私はINSERT IGNORE – handerianous

関連する問題