首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >操作数只应包含一个列Mysql查询。

操作数只应包含一个列Mysql查询。
EN

Stack Overflow用户
提问于 2017-03-29 06:20:58
回答 1查看 41关注 0票数 0

我使用下面的查询根据case语句中指定的条件获取多个列值,并遇到以下错误操作数应该只包含1列mysql查询。我只是不知道存在什么问题-- is.Is对此进行了简单的修复,还是用另一种方式编写查询?

代码语言:javascript
运行
复制
SELECT id,
          CASE 
             WHEN id='' THEN (select * where name='abc')
             ELSE (select * from sample)
          END
    FROM sample WHERE name='abc' and status='xyz'
EN

Stack Overflow用户

回答已采纳

发布于 2017-03-29 06:33:28

您可以使用组合了三个不同查询的联合查询:

代码语言:javascript
运行
复制
select * from samples
where name='abc' and status='xyz'

union all

select * from samples
where
  name='abc' and not exists (
    select * from samples
    where name='abc' and status='xyz'
  )

union all

select * from samples
where
  not exists (
    select * from samples
    where name='abc'
  )
  • 第一部分将返回与名称和状态条件匹配的样本中的所有记录。
  • 第二部分将返回示例中与名称条件匹配的所有记录,但前提是第一个查询不返回任何内容
  • 当第一次查询和第二次查询都不返回任何内容时,第三部分将返回样本中的所有记录

(这三个查询可以与OR一起使用,但是联合查询更容易阅读和更清晰)

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

https://stackoverflow.com/questions/43085807

复制
相关文章

相似问题

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