MySQL查询顺序如果为null

puk*_*978 9 mysql

我正在尝试构建一个具有order by语句的MySQL查询.这就是我想要做的:

SELECT * 
FROM tbl_product 
ORDER BY retail_price ONLY IF wholesale_price IS NULL OTHERWISE ORDER BY wholesale_price.
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里开始.我找到了一篇使用ORDER BY COALESCE的文章,但我也发现这可能存在性能问题.

任何建议表示赞赏.

Boh*_*ian 25

SELECT * 
FROM tbl_product 
ORDER BY ifnull(wholesale_price, retail_price);
Run Code Online (Sandbox Code Playgroud)

请注意,您无需选择要排序的值 - 它可以是任何表达式