gpt4 book ai didi

mysql - MySQL 中的 IF 和 Case 语句

转载 作者:可可西里 更新时间:2023-11-01 07:40:48 25 4
gpt4 key购买 nike

如果 5 大于 2,我想选择 *,如果为假,则选择特定列。我哪里错了?

SELECT IF(5>2, *, column_x),
CASE whereheard_name WHEN 'Newspaper' THEN 'a'
WHEN 'TV' THEN 'b'
WHEN 'Internet' THEN 'c'
ELSE '-'
END
AS result
FROM whereheard;

感谢您对上述问题的回答。这是我正在使用的以下示例存储过程:

DELIMITER $$

USE `registration`$$

DROP PROCEDURE IF EXISTS `test2`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `test2`()
BEGIN
IF(5>2) THEN
SELECT * FROM whereheard;
ELSE
SELECT whereheard_name FROM whereheard;
END IF;
END$$

DELIMITER ;

我是这样调用它的:

CALL test2(),        
CASE whereheard_name WHEN 'Newspaper' THEN 'a'
WHEN 'TV' THEN 'b'
WHEN 'Internet' THEN 'c'
ELSE '-'
END
AS result
FROM whereheard;

我哪里出错了?

最佳答案

你不能在 SQL 中这样做(我的意思是特定语句不能有动态的列数)。你可以编写完成这项工作的存储过程:

CREATE PROCEDURE FOO .....
.....
IF (5>2) THEN
SELECT * FROM ...
ELSE
SELECT column1 FROM ....
END IF;

关于mysql - MySQL 中的 IF 和 Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14043458/

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