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

hodnocení položek v tabulce mysql

Neexistuje způsob, jak vypočítat pořadí (to, čemu říkáte pořadí) něčeho, aniž byste nejprve seřadili tabulku nebo uložili pořadí.

Pokud je však vaše tabulka správně indexována (index popularity), je pro databázi triviální to třídit, abyste mohli získat svou hodnost. Navrhoval bych něco jako následující:

Vybrat vše, včetně hodnocení

SET @rank := 0;
SELECT t.*, @rank := @rank + 1
FROM table t
ORDER BY t.popularity;

Chcete-li načíst položku se specifickým „id“, můžete jednoduše použít dílčí dotaz takto:

Vyberte jednu, včetně pozice

SET @rank := 0;
SELECT * FROM (
  SELECT t.*, @rank := @rank + 1
  FROM table t
  ORDER BY t.popularity
) t2
WHERE t2.id = 1;


  1. Co je to vztah typu one-to-one v databázi?

  2. Jak získat data z databáze pomocí webových služeb (JAX - RS) v Eclipse pomocí Java

  3. Proč se můj php kód nepřipojuje k mé vzdálené databázi MySql?

  4. Návrh DB:jedna velká DB pro všechny zákazníky nebo mnoho malých DB