MYSQL为什么ORDER BY DESC失败,但ORDER BY ASC的工作?
问题描述:
为什么只有其中一个查询有效?MYSQL为什么ORDER BY DESC失败,但ORDER BY ASC的工作?
作品:
SELECT *
FROM `global_rank`
WHERE rank_type = 2
AND rank < 1531.26367188
AND id <> 103
ORDER BY rank ASC
失败(即返回0行):
SELECT *
FROM `global_rank`
WHERE rank_type = 2
AND rank < 1531.26367188
AND id <> 103
ORDER BY rank DESC
答
没有问题,您的SQL查询他们是完美无瑕的。
请检查您验证查询结果的方式。我知道有时我们忽略了结果(常见的人为错误)。
答
经过几个小时的思考,我几乎可以肯定它必须是一个损坏的索引问题。删除rank
上的索引并重新添加它以查看行为是否改变。
你确定它在同一张桌子上,数据相同吗?否则,它*必须*工作。 – wallyk 2012-04-01 03:22:58
是的,我在phymyadmin运行这个和由于某种原因第二个不返回 – user257543 2012-04-01 03:37:49
rank_type和等级被索引,我相信它与mysql索引不支持反向排序有关吗? – user257543 2012-04-01 04:30:59