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

Pořadí řádků v zobrazení MySQL

Použijte:

SELECT t.id,
       t.variety,
       (SELECT COUNT(*) FROM TABLE WHERE id < t.id) +1 AS NUM
  FROM TABLE t

Není to ideální způsob, jak to udělat, protože dotaz na hodnotu num se provede pro každý vrácený řádek. Lepší nápad by bylo vytvořit NUMBERS tabulka s jedním sloupcem obsahujícím číslo začínající číslem, které se zvyšuje na neuvěřitelně velké číslo, a poté spojte a odkazujte na NUMBERS tabulky způsobem podobným příkladu proměnné, který následuje.

Hodnocení MySQL nebo jeho nedostatek

Můžete definovat proměnnou, abyste získali funkci pseudočísla řádku, protože MySQL nemá žádné hodnotící funkce:

SELECT t.id,
       t.variety,
       @rownum := @rownum + 1 AS num
  FROM TABLE t,
       (SELECT @rownum := 0) r
  • SELECT @rownum := 0 definuje proměnnou a nastaví ji na nulu.
  • r je alias poddotazu/tabulky, protože pokud nedefinujete alias pro poddotaz, i když jej nepoužíváte, dostanete v MySQL chybu.

Nelze použít proměnnou v zobrazení MySQL

Pokud tak učiníte, zobrazí se chyba 1351, protože nemůžete použít proměnnou v pohledu kvůli designu . chování chyb/funkcí je zdokumentováno zde .



  1. MySQL vybere řádky, kde je levé spojení null

  2. Získejte skrytou vstupní hodnotu z databáze po výběru formuláře

  3. Problémy s grafem:připojení pomocí NOCYCLE před výměnou v SQL serveru?

  4. Mohu dynamicky vytvořit tabulku mySQL z JSON?