1

プロフィール付きのテーブルがあります。ユーザー #:userId のプロファイルがあれば、UPDATE したいと思います。そのユーザーのプロファイルがない場合は、挿入したいと思います。この SQL クエリを試しましたが、うまくいきませんでした:

    プロファイルに挿入
    SET 名 = :名前,
        ウェブサイト = :ウェブサイト,
        バイオ = :バイオ
    WHERE ユーザー = :userId
    重複キーの更新について
        名前 = :名前、
        ウェブサイト = :ウェブサイト,
        バイオ = :バイオ

「ユーザー」は主キーです

編集: SQL に間違いが見つかりました。次のようになっている場合、問題なく動作します。

    プロファイルに挿入
    SET user = :userId, -- <-- ここに間違いがありました
        名前 = :名前、
        ウェブサイト = :ウェブサイト,
        バイオ = :バイオ
    重複キーの更新について
        名前 = :名前、
        ウェブサイト = :ウェブサイト,
        バイオ = :バイオ

みんな、ありがとう!

4

1 に答える 1

2

INSERT 構文が正しくありません (変更された UPDATE ステートメントのようです)。次のようなものを試してください:

INSERT INTO profiles (name, website, bio)
       VALUES (:name, :website, :bio)
  ON DUPLICATE KEY UPDATE website = :website, bio = :bio;

詳細と例については、INSERT ... ON DUPLICATE KEY UPDATE のドキュメントを参照してください。

于 2012-05-07T01:23:51.517 に答える