Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL INSERT INTO / ON DUPLICATE KEY с проблем с командата SELECT

Би ли проработило нещо толкова просто като това?

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

group by трябва да гарантира, че няма дубликати, така че да няма нужда от on duplicate key . Нещото sum() + subquery, което правехте, изглежда, че просто се опитвате да направите count(*).

Конкретната грешка, която получавате, беше поради size=sum(count). При пакетно вмъкване правилният начин да направите това ще бъде size=values(size), вижте документите на values() .

РЕДАКТИРАНЕ:

Ако добавя друг запис за всеки град, тогава няма уникален индекс за града и дублираният ключ така или иначе няма да направи нищо.

ако добавите уникален индекс към (град, щат), тогава можете да добавите on duplicate key update size=values(size) към горната заявка и ще актуализира всеки запис на място.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично увеличение не работи за клас Entity със съставен ключ

  2. Не мога да отварям и заключвам таблици с привилегии:Таблица 'mysql.user' не съществува

  3. Как да повторя всеки ред от mySQLi заявка с помощта на PHP?

  4. Броене на часове с помощта на MySQL

  5. Бутон за добавяне на PHP, за да видите цялото съдържание на целия запис MySQL