sql >> データベース >  >> RDS >> Mysql

MySQL INSERT INTO / ON DUPLICATE KEYwithSELECTステートメントの問題

    これと同じくらい簡単なことでしょうか?

    insert into cities (city, state, size)
    select city, state, count(*) as size from listings
    group by city, state
    

    group by on duplicate keyが不要になるように、重複がないことを確認する必要があります 。あなたが行っていたsum()+サブクエリは、単にcount(*)を実行しようとしていたように見えます。

    あなたが得ていた特定のエラーは、size =sum(count)が原因でした。バッチ挿入では、これを行う正しい方法はsize =values(size)になります。 values()

    編集:

    都市ごとに別のエントリを追加する場合、都市に一意のインデックスはなく、重複キーではとにかく何もしません。

    (city、state)に一意のインデックスを追加すると、重複するキーの更新にon duplicate key update size=values(size) 上記のクエリに追加すると、各レコードが適切に更新されます。



    1. $user_idが削除されたまたは$user_idが見つかりませんというメッセージを追加するにはどうすればよいですか?

    2. 別の行の優先度の値に基づいて行を選択するにはどうすればよいですか?

    3. nameはPostgreSQLの特別なキーワードですか?

    4. SequelizeJSでの遅い関連付け