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