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

Mysql - Jak uporządkować wyniki naprzemiennie (1,2,3, 1, 2, 3, 1, 2, 3,) rzędy, czy to możliwe?

Użyj:

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 nie posiada żadnej funkcjonalności rankingowej, ale na szczęście możesz używać zmiennych. Klucz resetował wartość @rownum, gdy client_id nie pasuje do poprzedniego client_id — ORDER BY w podzapytaniu ma zapewnić, że klienci są w porządku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trafność wyszukiwania pełnotekstowego jest mierzona w?

  2. przestań wstawiać dane do bazy podczas odświeżania strony

  3. zapisz wyniki zapytania sql do pliku w mysql

  4. MySQL bezpośrednie INSERT INTO z klauzulą ​​WHERE

  5. MySQL ORDER BY [niestandardowa wartość pola SET]