Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL otrzymuje pozycję wiersza w ORDER BY

Użyj tego:

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'

...aby uzyskać unikalną wartość pozycji. To:

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

...da krawatom tę samą wartość. IE:Jeśli na drugim miejscu znajdują się dwie wartości, obie będą miały pozycję 2, gdy pierwsze zapytanie da pozycję 2 jednemu z nich i 3 drugiemu...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy powinienem używać indeksu złożonego?

  2. Funkcja MySQL CEILING() — zaokrąglanie w górę do najbliższej liczby całkowitej

  3. LOAD DATA INFILE Kod błędu:13

  4. Włącz obsługę silnika pamięci masowej MySQL InnoDB podczas instalacji XAMPP

  5. Oblicz różnicę czasu między dwoma rzędami