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

MySQL Vyberte řádky při prvním výskytu každé jedinečné hodnoty

mysql má na to "cheat":

select *
from mytable
group by cid;

To je vše, co potřebujete, protože v mysql vám to umožňuje ne agregovat sloupce neseskupené podle (jiné databáze by vyvolaly chybu syntaxe), v takovém případě vypíše pouze první výskyt každé hodnoty (hodnot) podle skupiny. Upozorňujeme však, že to nezaručuje způsob ve kterém je určen "první" výskyt (bude to jen způsob načítání řádků)

Pokud chcete konkrétní první výskyt, nejprve seřaďte, poté použijte cheat po skupinách:

select *
from (
    -- order by the "time" column descending to get the "most recent" row
    select * from mytable order by time desc
    ) x
group by cid


  1. MySQL/InnoDB a dlouhotrvající dotazy

  2. Php mysql provést úkol po 30 sekundách

  3. Jak zobrazit pořadové číslo ve výsledku dotazu MySQL

  4. SQL injection s php filtrováním