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

Mysql - Как да подредя резултати чрез редуване на (1,2,3, 1, 2, 3, 1, 2, 3,) редове, възможно ли е?

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

SELECT x.client_id, 
       x.project_id,
       x.project_name
  FROM (SELECT t.client_id,
               t.project_id,
               t.project_name,
               CASE
                 WHEN @client_id != t.client_id THEN @rownum := 0
                 WHEN @client_id = t.client_id THEN @rownum := @rownum + 1
                 ELSE @rownum 
               END AS rank,
               @client_id := t.client_id
          FROM TABLE t,
               (SELECT @rownum := 0, @client_id
      ORDER BY t.client_id) r) x
ORDER BY x.rank, x.client_id

MySQL няма никаква функционалност за класиране, но за щастие можете да използвате променливи. Ключът беше нулиране на стойността @rownum, когато client_id не съвпада с предишния client_id - ORDER BY в подзаявката е да гарантира, че клиентите са в ред.



  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. Как да конвертирам от varbinary в char/varchar в mysql

  3. вътрешно присъединяване и ефективност на клаузата къде in()?

  4. INSERT в DB DateTime низ

  5. mysqldump не работи в crontab