Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL получава позиция на ред в ORDER BY

Използвайте това:

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'

...за да получите уникална стойност на позицията. Това:

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

...ще даде на връзките същата стойност. IE:Ако има две стойности на второ място, и двете ще имат позиция 2, когато първата заявка ще даде позиция 2 на единия от тях и 3 на другия...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изключение в основната нишка java.sql.SQLException:Достъпът е отказан за потребител ''@'localhost' (използвайки парола:НЕ)

  2. Как да настроите асинхронна репликация от Galera Cluster към самостоятелен MySQL сървър с GTID

  3. Информация за базата данни information_schema в MySQL

  4. Как да експортирате и импортирате .sql файл от командния ред с опции?

  5. Максимална дължина на MySQL и GROUP_CONCAT().