MySQL从子查询顺序中选择
如果我有以下表格:
CREATE TABLE `docs` (
`id` int(6) unsigned NOT NULL,
`rev` int(3) unsigned NOT NULL,
`content` varchar(200) NOT NULL,
--
PRIMARY KEY (`id`)
)
并执行以下查询:
select *
from (
select *
from docs
order by rev desc
) as `rows`
返回的行的顺序是否与内部查询的顺序相同?
一般来说,这可以保证吗?
是的,如果你只使用
select *
from (
select *
from docs
order by rev desc
) as `rows`
那么它将一如既往但在子查询中不应该使用ORDER BY。 在某些外部查询中使用了子查询,而外部查询也必须进行排序,所以没有必要排序子查询
如果在子查询中使用TOP或LIMIT,则需要在子查询中使用ORDER。 但这不是标准的SQL
你应该这样使用它
SELECT *
FROM (
SELECT *
FROM docs
) AS `rows` ORDER BY rev DESC;
链接地址: http://www.djcxy.com/p/94333.html
上一篇: MySQL select from subquery order
下一篇: Get records with max value for each group of grouped SQL results