/ / Mysql ponderando campos únicos por valores externos - mysql, sql

Mysql ponderando campos únicos por valores externos - mysql, sql

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 № 1

Aqui 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