Điều đầu tiên là bạn nên chuẩn hóa cấu trúc của mình, loại bỏ các giá trị được phân tách bằng dấu phẩy và sử dụng một bảng khác để liên kết các vị trí của bạn với bảng bài đăng của bạn xem Chuẩn hóa cơ sở dữ liệu , đối với bạn cấu trúc hiện tại, những gì bạn có thể làm là lấy tất cả các vị trí từ bảng của bạn và chèn chúng vào bảng mới, sau đó sử dụng hàm tổng hợp trên bảng mới của bạn
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 ;
Thao tác này sẽ chèn tất cả các vị trí có dữ liệu lặp lại trong bảng vị trí và sau đó sử dụng truy vấn bên dưới để có được số lượng mong muốn của bạn
SELECT cities,count(*)
FROM locaions
group by cities