You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL(MariaDB)函数中使用CASE语句?

解决MySQL/MariaDB存储函数中CASE语句的语法错误

错误原因

你遇到的1064语法错误,核心问题是RETURN语句后无需用SELECT包裹CASE表达式。CASE本身是一个能返回单个值的表达式,直接返回它即可,不需要额外的SELECT查询语句。

修正后的代码

CREATE FUNCTION CODE_TO_STR(CODE CHAR(4)) RETURNS VARCHAR(50)
BEGIN
  RETURN CASE CODE
    WHEN '1' THEN 'Code is one'
    WHEN '2' THEN 'Code is two'
    ELSE CODE
  END;
END;

额外注意事项

如果你的数据库环境启用了严格的语句分隔符规则,需要先修改分隔符再创建函数,示例如下:

DELIMITER //
CREATE FUNCTION CODE_TO_STR(CODE CHAR(4)) RETURNS VARCHAR(50)
BEGIN
  RETURN CASE CODE
    WHEN '1' THEN 'Code is one'
    WHEN '2' THEN 'Code is two'
    ELSE CODE
  END;
END //
DELIMITER ;

原错误信息翻译

错误代码: 1064. SQL语法有误;请查看与你的MariaDB服务器版本对应的手册,了解在第3行附近SELECT CASE CODE WHEN '1' THEN 'Code is one' WHEN '2' THEN 'Code is two...'处使用的正确语法 0.000 秒

内容的提问来源于stack exchange,提问作者theking2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:12:03