sql >> Database teknologi >  >> RDS >> Mysql

MySQL få rækkeposition i BESTIL EFTER

Brug denne:

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'

...for at få en unik positionsværdi. Dette:

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

... vil give slips den samme værdi. IE:Hvis der er to værdier på andenpladsen, vil de begge have en position på 2, når den første forespørgsel vil give en position på 2 til den ene af dem og 3 til den anden...



  1. Oracle datoforskel for at få antal år

  2. Hvordan kan jeg bekræfte, at en database er Oracle, og hvilken version bruger den SQL?

  3. SQL Server Temporary Object Caching

  4. SQL Server 2016:Opret et login