mysql 函数 声明变量_在MySQL存储函数中声明整数变量时出错

尝试在MySQL中声明一个新的存储函数时出现错误(服务器版本:5.5.13)

基本上,我有一个大表,根据它们的起始方式对字符串进行分类.我的函数接受一个字符串(来自用户输入),然后通过在数据库中搜索分类来告诉您该字符串的分类.它有点像LIKE查询,除了反向,因为它是包含完整字符串的用户输入,数据库包含要搜索的字符串.希望有道理!

它背后的概念和逻辑运行良好,因为我用PHP编写/开发它并且它​​工作得很漂亮,但是当试图将其转换为存储函数时,我从MySQL收到错误.该函数的代码是:

delimiter $

DROP FUNCTION IF EXISTS get_string_class$

CREATE FUNCTION get_string_class(mystring VARCHAR(15))

RETURNS VARCHAR(15)

READS SQL DATA

BEGIN

DECLARE i INT;

SET i = 2;

DECLARE mystringlength INT;

SET mystringlength = LENGTH(mystring);

DECLARE segment VARCHAR(15);

DECLARE String_Class VARCHAR(15);

SET String_Class = NULL;

WHILE i <= mystringlength DO

SET segment = LEFT(mystring,i);

SET String_Class = (SELECT String_Class FROM string_class_list WHERE String_Begins = segment);

IF SELECT FOUND_ROWS() = 1 THEN

RETURN String_Class

END IF;

i = i + 1;

END WHILE;

RETURN String_Class;

END$

delimiter ;

我收到这个错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds

to your MySQL server version for the right syntax to use near

'DECLARE mystringlength INT; SET mystringlength = LENGTH(mystring);

DECLARE segm' at line 10

我已经做了很多努力,试图找出我出错的地方.我甚至完全剥离了循环测试它,但仍然得到相同的错误.有谁知道我在宣布INT变量时做错了什么?它可能是非常基本的……!

首先十分感谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值