2
MySQL中是否有任何方法,其中以下查詢返回3個結果而不是2個?mysql從具有重複項目的列表中選擇
select * from products p where p.id in (303022, 287769, 303022)
MySQL中是否有任何方法,其中以下查詢返回3個結果而不是2個?mysql從具有重複項目的列表中選擇
select * from products p where p.id in (303022, 287769, 303022)
如果你想的303022值的兩倍,可以UNION ALL與該行的查詢,否則,與該查詢後總是回到只有兩個(假設ID是沒有在表中複製) :
select * from products p where p.id in (303022, 287769)
UNION ALL
select * from products p where p.id = 303022
您可以通過連接到一個子查詢,並使用UNION ALL
重複的子查詢的ID做到這一點。
例如:
select p.*
from products p
inner join
(
select 303022 as id
union all select 287769
union all select 303022
) sub_query on sub_query.id = p.id
咦?如果這些ID中的任何一個不存在,您將獲得2條記錄......如果這些ID可以是重複的,則所有投注都將關閉。 –
如果你只有兩行有這兩個id,那麼一個簡單的查詢將永遠不會返回你3.你可以做一個更復雜的查詢來獲得303022兩次 –