Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć wiele wierszy w MySQL?

Powinieneś być w stanie zastosować funkcję agregującą do wszystkich kolumn, a następnie GROUP BY id :

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

Zobacz SQL Fiddle z wersją demonstracyjną

Jeśli chodzi o strukturę DB, jedynym problemem, który widzę, jest to, że wstawiasz wiele rekordów dla tego samego użytkownika. Powinieneś używać UPDATE oświadczenie, aby użyć wartości zamiast wstawiać.

Wygląda na to, że chcesz użyć REPLACE funkcja w MySQL (tutaj jest samouczek ).

Zapytanie byłoby więc podobne do tego:

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

Zobacz SQL Fiddle z wersją demonstracyjną



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działają MIN() i MAX() na ciągach znaków CHAR/VARCHAR w MySQL?

  2. parsuj wyniki w MySQL przez REGEX

  3. mysql:użyj SET czy wielu kolumn?

  4. C# z MySQL - Błąd:Guid powinien zawierać 32 cyfry z 4 myślnikami podczas próby otwarcia połączenia

  5. Flask-SQLAlchemy — kiedy tworzone i niszczone są tabele/bazy danych?