我有一个订单的MySQL查询,如下所示:
ORDER BY home_status = 2, home_lot_size, home_status ASC, home_price现在,home_lot_size可以是联排住宅,30,36,40,46,50,但是顺序是这样的,30,36,40,46,50,然后是联排别墅,我希望能在前30,36,40,46,50中找到家。
这个是可能的吗?
发布于 2014-12-02 15:40:07
可以使用CASE子句创建可以排序的新列。就像这样
SELECT
CASE home_lot_size
WHEN 'Townhome' THEN '00'
ELSE home_lot_size
END as sort_by
FROM table
ORDER BY sort_by发布于 2014-12-02 15:45:41
这里有一个简单的解决方案,
SELECT * FROM your_table_name WHERE (home_lot_size='Townhome' OR 1=1) ORDER BY home_lot_size='Townhome' DESC你不需要用这个用例。
发布于 2014-12-02 15:39:28
您可以在CASE中使用ORDER BY
ORDER BY home_status = 2,
case when home_lot_size = 'Townhome' then '0' else home_lot_size end,
home_status ASC, home_pricehttps://stackoverflow.com/questions/27253075
复制相似问题