gpt4 book ai didi

mysql - 操作数应仅包含 1 列 Mysql 查询

转载 作者:行者123 更新时间:2023-11-29 10:55:36 26 4
gpt4 key购买 nike

我正在使用以下查询根据 case 语句中指定的条件获取多个列值,并遇到以下错误操作数应仅包含 1 列 mysql 查询。我只是无法弄清楚问题是什么。是有一个简单的修复方法,或者有其他方法来编写我的查询吗?

SELECT id,
CASE
WHEN id='' THEN (select * where name='abc')
ELSE (select * from sample)
END
FROM sample WHERE name='abc' and status='xyz'

最佳答案

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

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 组合在一起,但联合查询更易于阅读和清晰)

关于mysql - 操作数应仅包含 1 列 Mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43085807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com