MySQL查询按if null排序

11

我正在尝试构建一个带有order by语句的MySQL查询。这就是我的目标:

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

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

任何建议都受到欢迎。

1个回答

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

注意,你不需要 选择 你要排序的值 - 它可以是任何表达式。


这真的救了我!你也可以在括号外添加asc或desc来改变顺序。:) 谢谢! - cbloss793

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接