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

MySQL získá pozici řádku v ORDER BY

Použijte toto:

SELECT x.id, 
       x.position,
       x.name
  FROM (SELECT t.id,
               t.name,
               @rownum := @rownum + 1 AS position
          FROM TABLE t
          JOIN (SELECT @rownum := 0) r
      ORDER BY t.name) x
 WHERE x.name = 'Beta'

...pro získání jedinečné hodnoty pozice. Toto:

SELECT t.id,
       (SELECT COUNT(*)
          FROM TABLE x
         WHERE x.name <= t.name) AS position,
       t.name    
  FROM TABLE t      
 WHERE t.name = 'Beta'

...budou mít kravaty stejnou hodnotu. IE:Pokud jsou na druhém místě dvě hodnoty, obě budou mít pozici 2, když první dotaz přiřadí pozici 2 jedné z nich a 3 druhé...



  1. Jednoduchý dotaz Oracle:doslovný neodpovídá formátovacímu řetězci

  2. Konverze časového pásma v dotazu SQL

  3. Upozornění:mysqli_query() očekává, že parametr 1 bude mysqli, daný zdroj

  4. Nakonfigurujte Lucene.Net s SQL Server