问题标题可能有点模糊,所以请随意将其更改为更有意义的内容,我找不到正确的单词。
所以这是我的问题:
在我的表中有2个重要的列
special_price是NULL
或数值,具体取决于特价。
我将描述我现在想要订购结果的方式:
首先,我想查看没有按日期排序的所有项目(NULL
)(最新的第一个),然后我想查看具有special_price的项目(除了{{1}之外的其他内容按日期排序。
起初我试过这个:
NULL
这对于第一部分来说非常有用,其中所有的special_price值都在SELECT * FROM products ORDER BY special_price, date_added DESC
,但是当它开始时,对于在special_price列中的值上有特定排序的项目。这当然有道理,因为在查询中我想先通过special_price订购。
那么我怎样才能让查询忽略special_price的值,看看它是否NULL
?因此,我按日期排序所有NULL
,然后按日期排序NULL
。
答案 0 :(得分:6)
ORDER BY IF( ISNULL( special_price ), 0, 1 ), date_added DESC
答案 1 :(得分:2)
我用
SELECT *, IF(special_price IS NULL, 0, 1) AS orderer FROM products ORDER BY orderer, date_added DESC
适用于您想要完成的任务