MySQL拼音首字母查詢

2021-08-08 12:15:01 字數 2013 閱讀 7391

**:

最近乙個專案中有個模組需要實現拼音首字母查詢功能,網上查了一下資料,自己重新修改整理了一下,使其滿足專案的要求。

實現過程如下:

1.建立乙個獲取中英文大寫首字母函式:

[html]view plain

copy

drop function if exists `get_first_pinyin_char`;  

create function `get_first_pinyin_char`(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');  

end if;  

return v_return;  

end  

2.使用的mysql函式備註:

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

upper(str):將字串轉為大寫

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

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

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

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

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

interval(n,n1,n2,n3,......):將n的值與後面的值列表進行比較。假如n < n1,則返回值為0;假如n < n2 等等,則返回值為1;假如n < n3 等等,則返回值為2;.....以此類推;假如n 為null,則返回值為 -1 。所有的引數均按照整數處理。為了這個函式的正確執行,必須滿足 n1 < n2 < n3 < ……< nn 

elt(n,str1,str2,str3,...):若n = 1,則返回值為 str1,若n = 2,則返回值為 str2,以此類推。若n 小於1或大於引數的數目,則返回值為 null。

3.使用樣例:

[sql]view plain

copy

select

name

,get_first_pinyin_char(

name

) from

user

where

get_first_pinyin_char(

name

) = 

'w'

顯示結果:

MySQL拼音首字母查詢

在mysql中建立乙個獲取中英文大寫首字母的函式 delimiter create definer function 401 exam get first pinyin char 1 param varchar 255 returns varchar 2 charset utf8 begin dec...

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 擷取...