mysql 自定义函数 如何传入中文参?
mysql 自定义函数 如何传入中文参数
CREATEFUNCTION`fristPinyin`(P_NAMEVARCHAR(255))RETURNSvarchar(255)CHARSETutf8BEGINDECLAREV_RETURNVARCHAR(255);SETV_RETURN=ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAMEUSINGgbk),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');RETURNV_RETURN;ENDpinyin:此函数是将一个中文字符串对应拼音母的每个相连(例如:"中国人"->ZGR)复制代码代码如下:CREATEFUNCTION`pinyin`(P_NAMEVARCHAR(255))RETURNSvarchar(255)CHARSETutf8BEGINDECLAREV_COMPAREVARCHAR(255);DECLAREV_RETURNVARCHAR(255);DECLAREIINT;SETI=1;SETV_RETURN='';whileIselectp。
province,fristPinyin(p。province),pinyin(p。province)fromprovincep;+------------------+-------------------------+--------------------+|province|fristPinyin(p。
province)|pinyin(p。province)|+------------------+-------------------------+--------------------+|北京市|B|BJS||天津市|T|TJS||河北省|H|HBS||山西省|S|SXS||内蒙古自治区|N|NMGZZQ|+------------------+-------------------------+--------------------+5rowsinset###中文看做字符串处理传入即可。
比如创建hello函数,传入'你好'
mysql> CREATE FUNCTION hello (s CHAR(20))
mysql> RETURNS CHAR(50) DETERMINISTIC
-> RETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0。
00 sec)
mysql> SELECT hello('你好');
+----------------+
| hello('world') |
+----------------+
| 你好! |
+----------------+
1 row in set (0。
00 sec)。
答:这个的话也许是网络速度的慢了啊详情>>
答:详情>>