MYSQL設定自定義函式的問題

2021-09-29 12:54:59 字數 1635 閱讀 6945

以root使用者進入資料庫
set global log_bin_trust_function_creators = 1;
建立函式

fristpinyin : 此函式是將乙個中文字串的第乙個漢字轉成拼音字母 (例如:"北京"->b)

drop function if existsfristpinyin;

create functionfristpinyin(p_name varchar(255) charset utf8) returns varchar(255) charset utf8

begin declare v_return varchar(255) charset utf8;

set v_return = elt(interval(conv(hex(left(convert(p_name using gbk),1)),16,10),

0xb0a1,0xb0c5,0xb2c1,0xb4ee,0xb6ea,0xb7a2,0xb8c1,0xb9fe,0xbbf7,

0xbfa6,0xc0ac,0xc2e8,0xc4c3,0xc5b6,0xc5be,0xc6da,0xc8bb,0xc8f6,0xcbfa,0xcdda,0xcef4,0xd1b9,0xd4d1),

『a』,『b』,『c』,『d』,『e』,『f』,『g』,『h』,『j』,『k』,『l』,『m』,『n』,『o』,『p』,『q』,『r』,『s』,『t』,『w』,『x』,『y』,『z』);

return v_return; end

– 建立拼音首字母搜尋函式

pinyin :此函式是將乙個中文字串對應拼音母的每個相連 (例如:「北京」->bj)

drop function if existspinyin;

create functionpinyin(p_name varchar(255) charset utf8) returns varchar(255) charset utf8

begin declare v_compare varchar(255) charset utf8;

declare v_return varchar(255) charset utf8;

declare i int; set i = 1; set v_return = 『』;

while i < length(p_name) do set v_compare = substr(p_name, i, 1);

if (v_compare != 『』) then

#set v_return = concat(v_return, 『,』, v_compare);

set v_return = concat(v_return, fristpinyin(v_compare));

#set v_return = fristpinyin(v_compare);

end if; set i = i + 1; end while;

if (isnull(v_return) or v_return = 『』) then set v_return = p_name;

end if; return v_return; end

mysql自定義函式優點 MySQL自定義函式

在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...

mysql自定義函式命名 MySQL自定義函式

在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...

mysql 自定義函式

今天要做乙個排序,有中文和英文的,資料庫採用utf8編碼,排除來的不對,所以需要將中文轉換成中文的第乙個字母,然後來排序 先小小的看一下mysql的自定義函式 drop function if exists fntable 如果存在就刪除 delimiter 函式開始 create function...