簡體   English   中英

運行代碼時MySQL函數中的語法錯誤

[英]Syntax error in MySQL function while running code

我收到此錯誤:

#1064-您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取在第4行的''附近使用的正確語法

當我在phpmyadmin中運行以下代碼時,在第二個聲明表達式旁邊也出現此錯誤:

無法識別的語句類型(在聲明附近)

這些錯誤可能是什么原因? (Phpmyadmin,版本等)

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 $$
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 ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM