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

wybierz zduplikowany rekord i policz rekord oddzielony przecinkami w mysql

Po pierwsze, powinieneś znormalizować swoją strukturę, pozbyć się wartości oddzielonych przecinkami i użyć innej tabeli, aby powiązać swoje lokalizacje z tabelą postów, patrz Normalizacja bazy danych , dla twojej obecnej struktury, możesz pobrać wszystkie lokalizacje ze swojej tabeli i wstawić je do nowej tabeli, a następnie użyć funkcji agregacji na nowej tabeli

CREATE TABLE locaions (cities CHAR(255)) ;

SET @S1 = CONCAT(
  "INSERT INTO locaions (cities) VALUES ('",
  REPLACE(
    (SELECT 
      GROUP_CONCAT(`Location`) AS DATA 
    FROM
      `posts`),
    ",",
    "'),('"
  ),
  "');"
) ;

PREPARE stmt1 FROM @s1 ;

EXECUTE stmt1 ;

Spowoduje to wstawienie wszystkich lokalizacji z powtarzającymi się danymi w tabeli lokalizacji, a następnie użycie poniższego zapytania, aby uzyskać żądaną liczbę

SELECT cities,count(*) 
FROM locaions 
group by cities

Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Synchronizuj 2 tabele różnych baz danych - MySQL

  2. Symbol wieloznaczny MySQL w wyborze

  3. Unikanie powtarzania JTextField setText wokół programu

  4. Połączenie z MySQL z .NET przy użyciu biblioteki SSH.NET

  5. Utknąłem w tworzeniu zapytania MySQL