MySQL拼音首字母查詢

2021-08-20 21:11:54 字數 1456 閱讀 7231

在mysql中建立乙個獲取中英文大寫首字母的函式:

delimiter $$  

create

/*[definer = ]*/

function `401_exam`.`get_first_pinyin_char_1`(param varchar(255))returns varchar(2) charset utf8

begin

declare v_return varchar(255);

declare v_first_char varchar(2);

set v_first_char = upper(left(param,1));

set v_return = v_first_char;

if length( v_first_char) <> character_length( v_first_char ) then

set v_return = elt(interval(conv(hex(left(convert(param 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');

endif;

return v_return;

end$$

delimiter ;

left(str,length):從左邊開始擷取字串

upper:將字串轉為大寫

length(str):計算字串長度,乙個漢字算三個字元,乙個數字或字母算乙個字元

character_length(str):漢字、數字、字母都算乙個字元

convert(expr using encode):不同字符集之間的資料轉換

hex(number or str):將數字或字串轉換為十六進製制

conv(number, from, to):將數字從原來的進製轉換成指定的進製

interval(n,n1,n2,n3,……):將n的值與後面的值列表進行比較。

select id,questiontypedesc,get_first_pinyin_char_1(questiontypedesc) from te_questiontypes where get_first_pinyin_char(questiontypedesc)='c'

MySQL拼音首字母查詢

最近乙個專案中有個模組需要實現拼音首字母查詢功能,網上查了一下資料,自己重新修改整理了一下,使其滿足專案的要求。實現過程如下 1.建立乙個獲取中英文大寫首字母函式 html view plain copy drop function if exists get first pinyin char c...

MySQL拼音首字母查詢

最近乙個專案中有模組需要實現拼音首字母查詢功能 實現如下 寫2個函式 第乙個 函式名稱 firstpinyin begin declare v return varchar 255 set v return elt interval conv hex left convert p name usin...

MySql 漢字轉拼音首字母

delimiter use test drop function if exists getpy create definer hjd function getpy in string varchar 21845 returns varchar 21845 charset utf8 begin 擷取...