Pie*_*888 2 mysql sql-order-by
问题标题可能有点模糊,所以随意把它改成更有意义的东西,我找不到正确的单词.
所以这是我的问题:
在我的表中有2个重要的列
special_price是一个NULL或一个数值,具体取决于特殊价格.
我将描述我现在想要订购结果的方式:
首先,我希望看到没有NULL按日期排序的所有项目(最新的第一个),然后我想查看NULL按日期排序的具有special_price(除此之外的任何东西)的项目.
起初我试过这个:
SELECT * FROM products ORDER BY special_price, date_added DESC
Run Code Online (Sandbox Code Playgroud)
这对于第一部分来说非常有用NULL,其中所有的special_price值都在哪里,但是当它开始时,对于在special_price列中的值上排序的特殊商品的商品而言.这当然有道理,因为在查询中我想先通过special_price订购.
那么我怎样才能让查询忽略special_price的值,看看它是否NULL存在?所以我NULL按日期排序,然后NOT NULL按日期排序.
ORDER BY IF( ISNULL( special_price ), 0, 1 ), date_added DESC
Run Code Online (Sandbox Code Playgroud)