2011-07-10 25 views
7

Estoy intentando construir una consulta MySQL que tenga una orden por instrucción. Esto es lo que estoy tratando de hacer:MySQL Query order por if null

SELECT * 
FROM tbl_product 
ORDER BY retail_price ONLY IF wholesale_price IS NULL OTHERWISE ORDER BY wholesale_price. 

No tengo idea de por dónde empezar. Encontré un artículo que usa ORDER BY COALESCE pero también encontré que esto podría tener problemas de rendimiento.

Cualquier consejo se agradece.

Respuesta

22
SELECT * 
FROM tbl_product 
ORDER BY ifnull(wholesale_price, retail_price); 

Tenga en cuenta que no es necesario seleccionar el valor que está ordenando por - que puede ser cualquier expresión

+0

fantástico, gracias! – puks1978

+0

¡Esto realmente me salvó! También puede agregar asc o desc fuera de() para cambiar el orden también. :) ¡GRACIAS! – cbloss793