Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie doppelten Datensatz aus und zählen Sie den Datensatz von Komma getrennt in MySQL

Als erstes sollten Sie Ihre Struktur normalisieren, kommagetrennte Werte loswerden und eine andere Tabelle verwenden, um Ihre Standorte mit Ihrer Beitragstabelle in Beziehung zu setzen, siehe Datenbanknormalisierung , für Ihre aktuelle Struktur können Sie alle Standorte aus Ihrer Tabelle abrufen und sie in eine neue Tabelle einfügen und dann die Aggregatfunktion für Ihre neue Tabelle verwenden

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 ;

Dadurch werden alle Standorte mit wiederholten Daten in die Standorttabelle eingefügt und dann die folgende Abfrage verwendet, um die gewünschte Anzahl zu erhalten

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

Demo