Dire che ho una tabella di fiori con i colori associati. È possibile ottenere un elenco di fiori e ordinarli, per esempio, Yellow
prima, quindi Blue
, quindi Red
. Fondamentalmente, voglio specificare un elenco di valori e ordinare il risultato con quei valori. Possibile?MySQL - ordine da qualcosa non ASC o DESC
risposta
Si potrebbe utilizzare FIND_IN_SET:
ORDER BY FIND_IN_SET(column, 'Yellow,Blue,Red')
..o l'istruzione CASE ANSI:
ORDER BY CASE column
WHEN 'Yellow' THEN 1
WHEN 'Blue' THEN 2
WHEN 'Red' THEN 3
END
è possibile aggiungere un campo nella tabella di colori per la sort_order
ed e fornire i valori secondo il requisito sorta . Nella query è possibile utilizzare ORDER BY sort_order ASC
Mi aspetto che si desideri ordinarlo in base a un requisito dinamico non esplicitamente per questi tre colori menzionati. Ciò ti consentirà una completa flessibilità per gestire l'ordinamento.
La mia scelta sarebbe stata quella di utilizzare la funzione FIELD(str, str1, str2, ...)
.
Restituisce l'indice (posizione) di str in l'elenco str1, str2, str3, .... Restituisce 0 se non viene trovato str.
Così si potrebbe utilizzare il valore di ritorno di ordinare l'elenco dei risultati:
ORDER BY FIELD (color, 'Yellow', 'Blue', 'Red')
Se si vuole invertire l'ordine, basta aggiungere DESC
.
- 1. Come ordinare l'elenco generico Asc o Desc?
- 2. Oracle dinamico DESC e ASC in ordine di
- 3. Query MySQL per ordinare due colonne, una ASC un'altra DESC
- 4. Utilizzo delle variabili per asc e desc in modo da
- 5. SQLAlchemy Core: ordine da desc
- 6. SQL Server: indice cluster su datetime, ASC o DESC
- 7. Descrizione caso per clausola Order Desc/Asc
- 8. MySql ordine condizionato da
- 9. DESC e ASC come parametro nella stored procedure
- 10. ordine mysql per, null prima e DESC dopo
- 11. ordine mySQL in base a determinati valori e quindi DESC?
- 12. ordine su ordinazione da in SQL Server per esempio: P, A, L, H. Non ASC o Disc
- 13. Come posso ordinare la lista generica DESC e ASC?
- 14. "Ordina per desc" nell'ordine inverso?
- 15. TSQL: ordine per asc senza nome colonna
- 16. Utilizzare EventLogReader in modalità Ordine Desc.?
- 17. Il modo migliore per implementare l'ordinamento asc o desc nei binari
- 18. MySQL ordine predefinito dipende da dove
- 19. MySQL - utilizzando GROUP BY e DESC
- 20. Mysql usa DESC nell'istruzione case
- 21. MySQL ordine da due colonne e risultati ordina di nuovo
- 22. Ordine MySQL con l'aiuto!
- 23. ordine mysql da una lista fissa
- 24. Istruzione CASE per la clausola ORDER BY con più colonne e Desc/Asc Sort
- 25. Come posso creare un indice DESC in MySQL?
- 26. ordine query mysql per più elementi
- 27. Ordine entro gruppo da?
- 28. Come gruppo da DESC ordinare
- 29. MySQL ordine da stringa con i numeri
- 30. mysql 'ordine da' edizione con lettere arabe
Come aggiungere una colonna risolve il problema quando a volte ho bisogno di ordinare (giallo, blu, rosso), a volte (blu, giallo, rosso), a volte (rosso, giallo, blu), .... – StackOverflowNewbie
THe ' Il campo sort_order 'dovrebbe memorizzare quella gerarchia in base alla quale è necessario ordinare. Per es. il valore del colore e 'sort_order' deve essere il seguente quando si desidera ordinare (Blu, Giallo, Rosso), Blu - 1 Giallo - 2 Rosso - 3 WHen si desidera ordinare (Rosso, Giallo, Blu) Blu - 3 Giallo - 2 Rosso - 1 Questo ti aiuterà a modificare l'ordinamento senza modificare il codice php. A un livello più alto, è necessario fornire una fornitura Web per gestire l'ordinamento in una pagina in modo che, quando mai, l'utente/amministratore desideri modificare l'ordine. Questo è come viene gestito su siti Web di fascia alta. –