sql >> Base de Datos >  >> RDS >> Mysql

seleccione el registro duplicado y cuente el registro separado por comas en mysql

Lo primero es normalizar su estructura, deshacerse de los valores separados por comas y usar otra tabla para relacionar sus ubicaciones con la tabla de publicaciones. Consulte Normalización de bases de datos ,para su estructura actual, lo que puede hacer es obtener todas las ubicaciones de su tabla e insertarlas en la nueva tabla y luego usar la función de agregado en su nueva tabla

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 ;

Esto insertará todas las ubicaciones con datos repetidos en la tabla de ubicaciones y luego usará la consulta a continuación para obtener el recuento deseado

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

Demostración