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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog