函數(shù)drop function if exists test1;CREATE FUNCTION test1(str1 VARCHAR(200),str2 VARCHAR(200)) RETURNS VARCHAR (200) CHARSET utf8BEGINRETURN CONCAT(str1,str2);END;sql:select test1('我是','中文');報(bào)錯(cuò):[SQL]select test1('我是','中文');[Err] 1366 - Incorrect string value: '\xE6\x88\x91\xE6\x98\xAF' for column 'str1' at row 342輸入非中文是可以得到結(jié)果,輸入中文就會報(bào)錯(cuò),求大神解答是數(shù)據(jù)庫字符編碼問題,改成utf8就可以了貌似不會關(guān)閉問題,隨便來個(gè)人 送分了
3 回答

米脂
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 BEGIN DECLARE V_RETURN VARCHAR(255); 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 :此函數(shù)是將一個(gè)中文字符串對應(yīng)拼音母的每個(gè)相連 (例如: "中國人" ->ZGR) 復(fù)制代碼 代碼如下: CREATE FUNCTION `pinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 BEGIN DECLARE V_COMPARE VARCHAR(255); DECLARE V_RETURN VARCHAR(255); 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 示例: 復(fù)制代碼 代碼如下: mysql> select p.province, fristPinyin(p.province), pinyin(p.province) from province p; +------------------+-------------------------+--------------------+ | province | fristPinyin(p.province) | pinyin(p.province) | +------------------+-------------------------+--------------------+ | 北京市 | B | BJS | | 天津市 | T | TJS | | 河北省 | H | HBS | | 山西省 | S | SXS | | 內(nèi)蒙古自治區(qū) | N | NMGZZQ | +------------------+-------------------------+--------------------+ 5 rows in set |

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
中文看做字符串處理傳入即可。
比如創(chuàng)建hello函數(shù),傳入'你好'
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)
- 3 回答
- 0 關(guān)注
- 2184 瀏覽
添加回答
舉報(bào)
0/150
提交
取消