2013-03-13 68 views
0

嗨,我需要帮助我的查询。 我想找到产品N行mysql IN和其他选项

我的查询是:

Select ...... WHERE 
    s.id_prod = 2 AND s.sn IN(100,20) 
    LIMIT 3 

,但现在我有3个产品,但其中一人还没有SN。 结果3行如何?

s.sn IN(100,20 ,*) 

什么取代'*'它将工作? 如果我有100个产品和仅2具有SE(的uniqe)我必须有结果3行(与SN 100和20和其它任何3TH行

回答

0
SELECT ... 
FROM ... 
WHERE s.id_prod = 2 
ORDER BY s.sn IN(100,20) DESC 
LIMIT 3 

的想法是,即s.sn IN(100,20)计算结果为1或0具体取决于物业是否持有,按照物业的降序排列,将列出物业持有的顶部的记录,