doumalu9257 2016-04-02 15:34
浏览 102
已采纳

运行代码时MySQL函数中的语法错误

I am getting this error:

#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 '' at line 4

when i run followed code in phpmyadmin also appearing this error beside of second declare expression:

unrecognized statement type (near declare)

What can be cause of these error? (Phpmyadmin, version, etc)

create function fnc_generate_url(title_in varchar(250))
    returns varchar(250)
        begin
            declare v_count int; 
            declare v_return varchar(250);
            declare cr_count cursor
            for
                select count(1) from tbl_page where page_title like concat('%',title_in,'%');

            open cr_count;
                fetch cr_count into v_count;
            close cr_count;

            if v_count = 0 then
                set v_return = replace(trim(title_in), ' ', '-');
            else
                set v_return =  concat(replace(trim(title_in), ' ', '-'),'-',v_count);
            end if;

            return v_return;
        end;
  • 写回答

1条回答 默认 最新

  • duanaixuan7385 2016-04-02 16:19
    关注

    Works fine if we use delimiters.

    Try this:

    DELIMITER $$
    create function fnc_generate_url(title_in varchar(250))
        returns varchar(250)
            begin
                declare v_count int; 
                declare v_return varchar(250);
                declare cr_count cursor
                for
                    select count(1) from tbl_page where page_title like concat('%',title_in,'%');
    
                open cr_count;
                    fetch cr_count into v_count;
                close cr_count;
    
                if v_count = 0 then
                    set v_return = replace(trim(title_in), ' ', '-');
                else
                    set v_return =  concat(replace(trim(title_in), ' ', '-'),'-',v_count);
                end if;
    
                return v_return;
            end;
    $$
    DELIMITER ;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?