0

I want to delete same value in topic field and keep first row of value.

such as

no topic 

1  1234 

2  1234 

3  1234

no = autoincrement

output

no topic

1  1234

This my code

$sql ="DELETE FROM data
WHERE no IN (SELECT * 
             FROM (SELECT no FROM data
                   GROUP BY topic HAVING (COUNT(*) > 1)
                  ) AS A
             )";

This code delete first value but I want to delete all same value and keep first value like example.

Tin Tran
  • 6,194
  • 3
  • 19
  • 34
sammy
  • 69
  • 1
  • 1
  • 11

1 Answers1

1

try this

DELETE FROM data
WHERE no NOT IN (SELECT no FROM
                   (SELECT MIN(no) as no,topic FROM data
                    GROUP BY topic
                   )NotDelete
                );

sqlfiddle

Tin Tran
  • 6,194
  • 3
  • 19
  • 34