sql >> Database teknologi >  >> RDS >> Mysql

Sådan fjerner du dublet med en bestemt tilstand

Dette burde virke:

DELETE Y
FROM YourTable Y JOIN 
   (
  SELECT
    name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6 
  FROM YourTable
  GROUP BY name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6
  HAVING COUNT(1) > 1
     ) T ON Y.name = T.name 
        AND Y.cl_1 = T.cl_1
        AND Y.cl_2 = T.cl_2
        AND Y.cl_3 = T.cl_3
        AND Y.cl_4 = T.cl_4
        AND Y.cl_5 = T.cl_5
        AND Y.cl_6 = T.cl_6

SQL Fiddle Demo

BTW -- Hvad med række 3 og 6? De ser ud til at være nøjagtig de samme?

http://sqlfiddle.com/#!2/26b8b/1




  1. Ulovlig blanding af sorteringer til drift til sammenligning af dato/klokkeslæt

  2. php slet linksrækker fra mysql-databasen

  3. SQL:Vælg seneste tråd og seneste indlæg, grupperet efter forum, sorteret efter seneste indlæg

  4. Python+MySQLdb underligt problem