2016-01-22 33 views
2

我有这个表语境的MySQL结果搜索2个colums

ID | NAME   | ACCOUNT 

1  | Visa   | 1000 
2  | MC    | 3333 
3  | Comptant  | 5000 
4  | Something  | 6000 
5  | Compte Client | 2000 

我需要colums ID搜索和账号

结果: 如果ID = 3和帐户= 2000

ID | NAME   | ACCOUNT 
3  | Comptant  | 5000 

但是

如果ID = 5且ACCOUNT!= 2000,则只返回ACCOUNT!= 2000 limit 1

ID | NAME   | ACCOUNT 
1  | Visa   | 1000 

我试图UNION但它获取任何搜索查询相同的数据...

任何想法?谢谢大家!

+0

我认为你需要只能通过搜索帐户(如果我的理解),没有ID,虽然我不太明白你正在尝试到这里。 –

+0

我不能,结构已经在一旁的id和另一边的帐户 –

回答

0

如果我理解正确,您希望返回最接近满足您的要求的一行。如果是这样,使用order bylimit

select t.* 
from thistable t 
order by (account <> 2000) desc, 
     (id = 3) desc; 
limit 1; 
+0

我不知道我可以使用命令来过滤,它也可以在sqlite上工作吗?顺便说一句:非常感谢! –

+0

@EtiennePilon。 。 。问题被标记为“mysql”,而不是“sqlite”。在SQLite中,您可能需要将条件包装在'case'语句中以将它们转换为0/1值。 –

+0

谢谢戈登,是的,我知道这是一个MySQL问题,这就是为什么我问它是否也适用于SQLite ...谢谢提示我会尝试(顺便说一句,它工作得很好:-)再次感谢! –