首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql WHERE optional

Mysql WHERE optional
EN

Stack Overflow用户
提问于 2011-04-13 23:02:18
回答 2查看 361关注 0票数 1

如果我有一个示例表,比如

代码语言:javascript
复制
id || value_a

我想选择5个条目,其中value_a = 1。到目前为止非常简单,但是现在如果结果少于5个,我希望仍然有5个结果。因此,如果有3个条目的value_a = 1,那么我希望得到这3个结果和另外2个value_a可以是任何值的结果。我如何才能以最好的方式实现这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-13 23:04:02

您可以按比较计算的结果进行排序,如下所示:

代码语言:javascript
复制
SELECT stuff FROM table ORDER BY (value_a = 'value you want') DESC LIMIT 5
票数 4
EN

Stack Overflow用户

发布于 2011-04-13 23:05:44

代码语言:javascript
复制
(
SELECT  *
FROM    mytable
WHERE   value_a = 1
LIMIT 5
)
UNION ALL
(
SELECT  *
FROM    mytable
WHERE   value_a <> 1
LIMIT 5
)
ORDER BY
        value_a = 1 DESC
LIMIT 5

这将有效地使用value_a上的索引

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5651365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档