【问题标题】:Prioritize SQL WHERE clause优先考虑 SQL WHERE 子句
【发布时间】:2012-11-29 13:40:44
【问题描述】:

基本上我想这样做:

SELECT * FROM `table` WHERE x = 'hello' OR x = 'bye' LIMIT 1';

我希望它返回 1 个值,但优先考虑第一个 where 子句的结果。因此,如果存在 x 列的值为“hello”的行,它将不会返回 'bye' 值的结果。如果 "hello" 值不存在,它将返回 'bye' 值的结果。

想不出办法,尽管它看起来相当微不足道。有什么想法吗?

【问题讨论】:

  • 如何使用表格?它是mysql中的一个关键字..
  • 这只是一个例子。这不是文字表结构。

标签: mysql sql select where


【解决方案1】:

一种方法是使用order by

SELECT *
FROM `table`
WHERE x = 'hello' OR x = 'bye'
order by (case when x = 'hello' then 1 else 2 end)
LIMIT 1'

“1”和“2”只是用于确定行优先级的任意数字。 'hello' 的值得到“1”,因此它们在其他值之前排序。

【讨论】:

  • 注意你也可以这样写:ORDER BY x='hello' DESC
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 1970-01-01
  • 2010-10-27
相关资源
最近更新 更多