Digamos que tengo una tabla de flores con los colores asociados. ¿Es posible obtener una lista de flores y pedirlas, por ejemplo, Yellow
primero, luego Blue
, luego Red
. Básicamente, quiero especificar una lista de valores y ordenar el resultado por esos valores. ¿Posible?MySQL - ordenando por algo que no es ASC o DESC
5
A
Respuesta
9
Usted podría utilizar FIND_IN_SET:
ORDER BY FIND_IN_SET(column, 'Yellow,Blue,Red')
..o la sentencia CASE ANSI:
ORDER BY CASE column
WHEN 'Yellow' THEN 1
WHEN 'Blue' THEN 2
WHEN 'Red' THEN 3
END
2
Usted puede agregar un campo en la tabla de colores y sort_order
y proporcionar valores de acuerdo a la exigencia especie . En la consulta puede usar ORDER BY sort_order ASC
Espero que desee pedirlo según un requisito dinámico no explícitamente para estos tres colores mencionados. Esto le permitirá completar la flexibilidad para administrar el orden de clasificación.
2
Mi elección sería usar la función FIELD(str, str1, str2, ...)
.
Devuelve el índice (posición) de str en la lista str1, str2, str3, .... Devuelve 0 si str no se encuentra.
lo que podría utilizar el valor de retorno para ordenar su lista de resultados:
ORDER BY FIELD (color, 'Yellow', 'Blue', 'Red')
Si desea invertir el orden, sólo tiene que añadir DESC
.
Cuestiones relacionadas
- 1. DataView.Sort: algo más que asc/desc (necesita clasificación personalizada)
- 2. MySQL Orden por columna múltiple combinada (no ordena por campo1 asc, campo2 asc)
- 3. ¿Cómo ordenar la lista genérica Asc o Desc?
- 4. MySQL - Grupo por la Orden por DESC
- 5. condicional SQL ORDER POR ASC/DESC para columnas alfa
- 6. SQL Server: índice agrupado en datetime, ASC o DESC
- 7. Oracle dinámico DESC y ASC en orden por
- 8. MS SQL: ORDEN condicional POR ASC/DESC Pregunta
- 9. DESC y ASC como un parámetro en el procedimiento almacenado
- 10. TFS 2010 ordenando VALORES PERMITIDOS desc
- 11. ¿Cómo ordenar la matriz C++ en modo ASC y DESC?
- 12. ¿Cómo puedo ordenar la lista genérica DESC y ASC?
- 13. "Ordenar por desc" en orden inverso?
- 14. La mejor forma de implementar ordenación asc o desc en raíles
- 15. MySQL columna de orden asc
- 16. Si creo un índice de Postgres, ¿cuál es la diferencia entre ASC y DESC?
- 17. Linq a sql: Ordene por datetime desc, luego ordene por el tiempo parte de los datos asc?
- 18. mySQL ordena por ciertos valores y luego DESC?
- 19. SQL ordenando por texto ASC, muestra números en la última posición
- 20. ¿Cómo creo un índice DESC en MySQL?
- 21. Ordenando por fecha con underscore.js o simplemente JS
- 22. cómo ordenar 2 campos de SQL en asc y desc dinámicamente
- 23. MySQL - utilizando GROUP BY y DESC
- 24. Clasificación de nombres que no están en inglés con MySQL
- 25. Clasificación UNIX: ordenando algo del portapapeles
- 26. Lo que es mejor en CSS: div.algo o simplemente .algo
- 27. Ordenando múltiples campos en MySQL
- 28. MySQL revertir el orden sin DESC
- 29. MySQL LIKE% string% no es lo suficientemente indulgente. ¿Algo más que pueda usar?
- 30. LINQ OrderBy no ordenando ... sin cambiar nada ... ¿por qué?
Cómo la adición de una columna resuelve el problema cuando a veces necesito pedir (amarillo, azul, rojo), a veces (azul, amarillo, rojo), a veces (rojo, amarillo, azul), .... – StackOverflowNewbie
THe ' El campo sort_order 'debe almacenar esa jerarquía en la que necesita ordenar. Por ej. el valor del color y 'sort_order' archivado debe ser el siguiente cuando desee ordenar (Azul, Amarillo, Rojo), Azul - 1 Amarillo - 2 Rojo - 3 ¿Cuándo quiere ordenar (Rojo, Amarillo, Azul) Azul - 3 Amarillo - 2 Rojo - 1 Esto le ayudará a modificar el orden de clasificación sin editar el código php. En un extremo superior, puede proporcionar una provisión web para administrar el orden de clasificación en una página, de modo que cuando el usuario/administrador quiera cambiar el orden. Así es como se maneja en sitios web de alta gama. –