Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Defina quais linhas excluir no mysql após aplicar o índice exclusivo combinado com ignorar


Ao invés de tentar deletar o que você não precisa, tente pensar nisso como um problema pelo qual você quer escolher o que você quer e ignorar o resto; igual a:
CREATE TABLE `other_table` LIKE `part3`;
INSERT INTO `other_table`
SELECT `part3`.*
FROM (SELECT gtu, region, trait, pop, author, risk, MAX(zvalue) AS max_zval
    FROM `part3`
    GROUP BY gtu, region, trait, pop, author, risk
) `tmp`
INNER JOIN `part3` USING (gtu, region, trait, pop, author, risk)
WHERE `part3`.zvalue = `tmp`.max_zval;

Isso deve criar uma tabela other_table que satisfaça a restrição exclusiva em seus dados; apenas as linhas com o maior zvalue são mantidos, os outros removidos (ignorados).