mysql从包含重复项的列表中选择

时间:2013-11-01 14:50:41

标签: mysql

在MySQL中是否有任何方法,以下查询返回3个结果而不是2?

select * from products p where p.id in (303022, 287769, 303022)

2 个答案:

答案 0 :(得分:0)

如果你想要两次303022的值,你可以使用UNION ALL查询该行,否则,使用该查询它将始终只返回两个(假设表中的id不重复):

select * from products p where p.id in (303022, 287769)
UNION ALL 
select * from products p where p.id = 303022

答案 1 :(得分:0)

您可以通过加入子查询并使用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