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

Как да обедините няколко реда в MySQL?

Трябва да можете да приложите агрегатна функция към всички колони и след това GROUP BY id :

select id,
  max(name) name,
  max(age) age,
  max(grade) grade
from yourtable
group by id

Вижте SQL Fiddle с демонстрация

Що се отнася до структурата на DB, единственият проблем, който виждам, е, че вмъквате множество записи за един и същ потребител. Трябва да използвате UPDATE оператор за използване на стойностите вместо вмъкване.

Изглежда, че искате да използвате REPLACE функция в MySQL (ето урок ).

Така че заявката ще бъде подобна на тази:

REPLACE 
  INTO yourtable (`id`, `name`, `age`, `grade`) 
  VALUES (0, 'john', 11, null);

Вижте SQL Fiddle с демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате MySQL на Debian 8

  2. mysql заявка за дата, между две полета за дата

  3. MySql битови колони връща странно голямо число в PHP 7.1 (не в предишни версии)

  4. Разлики между DATA INFILE и LOAD DATA LOCAL INFILE

  5. Съхранение на Mysql байтов масив