【问题标题】:Contextual MySQL result searching 2 columns上下文 MySQL 结果搜索 2 列
【发布时间】:2016-04-28 13:16:21
【问题描述】:

我有这张桌子

ID    |   NAME            |   ACCOUNT

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

我需要搜索列 ID 和帐户

结果: 如果 ID = 3 且 ACCOUNT != 2000

ID    |   NAME            |   ACCOUNT
3     |   Comptant        |   5000

但是

如果 ID = 5 且 ACCOUNT != 2000 则仅返回 ACCOUNT != 2000 限制 1

ID    |   NAME            |   ACCOUNT
1     |   Visa            |   1000

我尝试了 UNION,但它在任何搜索查询中获取相同的数据。

【问题讨论】:

  • 我认为您只需要按帐户搜索(如果我理解的话),而不是 ID,尽管我不太明白您要在这里找到什么。
  • 我不能,结构已经到位,一边是 id,另一边是帐户

标签: mysql conditional


【解决方案1】:

如果我理解正确,您希望返回最符合您要求的一行。如果是这样,请使用order bylimit

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

【讨论】:

  • 我不知道我可以使用 order 进行过滤,它也适用于 sqlite 吗?顺便说一句:非常感谢!
  • @EtiennePilon 。 . .问题被标记为“mysql”,而不是“sqlite”。在 SQLite 中,您可能需要将条件包装在 case 语句中以将它们转换为 0/1 值。
  • 谢谢 Gordon,是的,我知道这是一个 MySQL 问题,这就是为什么我问它是否也适用于 SQLite ......再次!)
  • 它刚刚在 SQLite 上尝试过,它也在工作 :-) 非常酷 :-) 再次感谢! @戈登!
猜你喜欢
  • 1970-01-01
  • 2017-12-04
  • 2021-09-10
  • 1970-01-01
  • 2016-04-30
  • 2014-02-18
  • 1970-01-01
  • 2018-12-10
相关资源
最近更新 更多