【发布时间】:2011-01-04 07:52:58
【问题描述】:
目前我在我的声明中做了一个非常基本的 OrderBy。
SELECT * FROM tablename WHERE visible=1 ORDER BY position ASC, id DESC
这样做的问题是'position'的NULL条目被视为0。因此,所有位置为NULL的条目都出现在具有1、2、3、4的条目之前。例如:
NULL, NULL, NULL, 1, 2, 3, 4
有没有办法实现以下排序:
1, 2, 3, 4, NULL, NULL, NULL.
【问题讨论】:
-
您应该重新考虑 user1052645 的回答。它更简单,不需要知道最大值,并且可能更快(假设评估表达式可能比函数调用更快)。
-
accepted answer 是错误!!!!!请参阅 here 和 here -
ISNULL (field), field ASC与CASE解决方案一样工作! -
@SteveClay 谁是 user1052645?
-
ORDER BY COALESCE(column_name, 'zz') DESC
标签: mysql sql-order-by