sql >> Databasteknik >  >> RDS >> Mysql

välj duplicerad post och räkna post från kommaseparerad i mysql

Det första är att du bör normalisera din struktur, bli av med kommaseparerade värden och använda en annan tabell för att relatera dina platser till din inläggstabell, se Databasnormalisering , för din nuvarande struktur är det du kan göra att hämta alla platser från din tabell och infoga dem i en ny tabell och sedan använda aggregatfunktionen på din nya tabell

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 ;

Detta kommer att infoga alla platser med upprepad data i platstabellen och sedan använda nedanstående fråga för att få önskat antal

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

Demo




  1. Agentavveckling i EM13c

  2. Utför enkel aritmetik i MySQL-sats eller i PHP-kod

  3. Fördelarna med att indexera främmande nycklar

  4. Beräknar medianen med Mysql