sql >> Databáze >  >> RDS >> Mysql

Nastavte, které řádky se mají odstranit na mysql po použití kombinovaného jedinečného indexu w/ignore

Místo toho, abyste se snažili odstranit to, co nepotřebujete, zkuste to považovat za problém, kdy chcete vybrat ty, které chcete, a zbytek ignorovat; takhle:

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;

To by mělo vytvořit tabulku other_table který splňuje jedinečné omezení ve vašich datech; pouze řádky s nejvyšší hodnotou zvalue jsou zachovány, ostatní odstraněny (přeskočeny).




  1. Seznam s vícenásobným výběrem státu nezobrazuje všechna města v jiném seznamu (Php, mysql, ajax)

  2. Jak používat trvalé připojení PDO?

  3. mysql failover:jak vybrat slave jako nového pána?

  4. PDO::FETCH_OBJ php