2016-04-03 13 views
1

私はmysqliでPHPを使用していますが、この例ではusernamelastnameがデータベースに存在する場合、私は価格を更新しようとしています。なぜこれは機能しないのですか?MYSQL、挿入/更新、else文の場合

IF (SELECT name,lastname FROM peoplePrice WHERE name='gus' AND lastname='lw') THEN 
    UPDATE peoplePrice SET price='20' WHERE name='gus' AND lastname='lw'; 
ELSE 
    INSERT INTO peoplePrice (name,lastname,price) 
    VALUES ('nisse','johansson','20'); 
END IF; 
+1

'SELECT'は行を返します。 http://stackoverflow.com/questions/4205181/insert-into-a-mysql-table-or-update-if-exists –

+0

の代わりにSELECT COUNT(*)を試してみてください –

+0

ランダムなユーザーを挿入していますか'name'と' lastname'は 'SELECT'で使われたものと一致する必要がありますか? – Arjan

答えて

2

MySQLは、ストアドプロシージャ以外で使用している種類の条件付きロジックを提供していません。挿入しようとしていることを実行するには、INSERT ... ON DUPLICATE KEY UPDATEを調べる必要があります。これを読んでください:http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

関連する問題