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

ROW_NUMBER() в MySQL

В MySQL няма функция за класиране. Най-близкото, което можете да получите, е да използвате променлива:

SELECT t.*, 
       @rownum := @rownum + 1 AS rank
  FROM YOUR_TABLE t, 
       (SELECT @rownum := 0) r

така че как би работило това в моя случай? Ще ми трябват две променливи, по една за всяка от col1 и col2? Col2 ще се нуждае от нулиране по някакъв начин, когато col1 се промени..?

да. Ако беше Oracle, бихте могли да използвате функцията LEAD, за да достигнете връх при следващата стойност. За щастие, Quassnoi покрива логиката за това, от което се нуждаете за внедряване в MySQL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо резултатите от SQL заявка не се връщат в реда, в който очаквам?

  2. PDO + MySQL и счупено UTF-8 кодиране

  3. mysql_fetch_array връща само един ред

  4. Как да добавите ограничение NOT NULL в MySQL

  5. MySQL избира една колона DISTINCT, със съответните други колони