我一直在尝试在MySQL中优化一个尴尬的ORDER BY。问题是我希望NULL和空白字段''出现在底部而不是顶部。我想出了:MySQL ORDER BY优化时排序NULL和''最后 - 是否有可能?
ORDER BY isnull(if (isnull(Lastname) OR ascii(Lastname)=0, null, 1)), Lastname ASC,
isnull(if (isnull(Firstname) OR ascii(Firstname)=0, null, 1)), Firstname ASC;
但是,这是造成文件排序,访问所有的表中的行:(
通过创建(姓氏,名字)的指数我能优化查询快速用一个简单的排序可以减轻:
ORDER BY Lastname ASC, Firstname ASC;
号文件排序:)
看来,MySQL不会让你改变默认的排序为空值,并且没有NULLS LAST选项。我不可能优化原始排序吗?
在此先感谢
这只适合有人提供可行的解决方案 – Cosmicnet 2012-01-27 01:58:17