优先考虑 SQL WHERE 子句
Posted
技术标签:
【中文标题】优先考虑 SQL WHERE 子句【英文标题】:Prioritize SQL WHERE clause 【发布时间】: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中的一个关键字.. 这只是一个例子。这不是文字表结构。 【参考方案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
以上是关于优先考虑 SQL WHERE 子句的主要内容,如果未能解决你的问题,请参考以下文章