Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL INSERT INTO / ON DUPLICATE KEY dengan masalah pernyataan SELECT

Apakah sesuatu yang sederhana seperti ini akan berhasil?

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

group by harus memastikan bahwa tidak ada duplikat sehingga tidak perlu on duplicate key . Hal sum() + subquery yang Anda lakukan sepertinya Anda hanya mencoba melakukan hitungan(*).

Kesalahan spesifik yang Anda dapatkan adalah karena size=sum(count). Dalam batch, masukkan cara yang benar untuk melakukan ini adalah size=values(size), lihat dokumen di values() .

EDIT:

Jika menambahkan entri lain untuk setiap kota maka tidak ada indeks unik di kota dan pada kunci duplikat tidak akan melakukan apa-apa.

jika Anda menambahkan indeks unik pada (kota, negara bagian) maka Anda dapat menambahkan on duplicate key update size=values(size) ke kueri di atas dan itu akan memperbarui setiap catatan di tempatnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak termasuk beberapa nilai dari array

  2. grup hitung mysql dengan memiliki

  3. Bagaimana cara mengelompokkan bidang tanggal untuk mendapatkan hasil triwulanan di MySQL?

  4. Memfilter file log menggunakan COUNT, GROUP BY, ORDER BY MAX

  5. tambahkan kolom sementara dengan nilai