以下2个查询有什么区别? (它们都产生相同的结果)2个联合查询之间的区别
select *
from (
select * from (
select *
from phppos_items
where name like 'AB10LA2%' and deleted = 0
order by `name` limit 16
) t
union
select * from (
select *
from phppos_items
where item_number like 'AB10LA2%' and deleted = 0
order by `name` limit 16
) t
union
select * from (
select *
from phppos_items
where category like 'AB10LA2%' and deleted = 0
order by `name` limit 16
) t
) as top_rows
order by `name` limit 16
VS
select *
from (
(select *
from phppos_items
where name like 'AB10LA2%' and deleted = 0
order by `name` limit 16)
union
(select *
from phppos_items
where item_number like 'AB10LA2%' and deleted = 0
order by `name` limit 16)
union
(select *
from phppos_items
where category like 'AB10LA2%' and deleted = 0
order by `name` limit 16)
) as top_rows
order by `name` limit 16
临时表?我很确定两个查询都会产生相同的执行计划。 – Magnus 2011-05-30 16:56:24
原件不应该优先考虑按名称找到的物品。 – 2011-05-30 17:01:37
@Jonathan Leffler你是对的,编辑 – 2011-05-30 17:04:21