Actualmente estoy buscando una posibilidad paraordene un resultado de mysql por pesos que no forman parte del conjunto de resultados o de la base de datos en sí. El único enlace entre la base de datos y los pesos se basa en una columna única para lo que existen los pesos.
Para ser más precisos, tengo la tabla MySql
+-------------------+
|Food |
+-------------------+
|id:int(unique) |
|name:string |
+-------------------+
y uno externo Fuente de pesos para las identificaciones de alimentos. Por ejemplo, un usuario carga la comida 1 con 100, la comida 2 con 200 y la comida 3 con 50. Lo que quiero es ordenar el resultado por los pesos dados por el usuario.
¿Tiene alguna idea de cómo puedo aplicar esta información externa en el resultado?
Edit: No estoy buscando una solución que ordene el resultado de la consulta. Quiero que el servidor mysql ordene el resultado.
Respuestas
4 para la respuesta № 1Aqui tienes :
SELECT
CASE id
when 1 then 300
when 2 then 100
when 3 then 200
END as weight
from tab
order by weight;
Lo que hace aquí es reemplazar los valores de sus filas existentes con sus valores personalizados, y luego ordenarlos con esos valores.
0 para la respuesta № 2
Si su fuente externa es php
array
. entonces deberías usar php array
sorting
Funciones en lugar de ordenar en mysql query.
Obtenga datos necesarios de la tabla mysql y haga una matriz php de eso. Ahora haga una matriz de fuente externa y combine ambas matriz y use array
clasificación.
enumeró sus funciones de ordenación de matriz PHP. Puede utilizar según sea necesario.
http://php.net/manual/en/array.sorting.php