以下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