top
Loading...
10.4.1.結果字符串
10.4.1. 結果字符串
MySQL中有許多操作符和函數可以返回字符串。本節回答這個問題:返回的字符串使用什么字符集和 校對規則?

對于簡單的函數,即接收字符串輸入然后返回一個字符串結果作為輸出的函數,輸出的字符集和校對規則與原始輸入的相同。例如,UPPERX返回一個字符串,其字符和 校對規則與X相同。類似的函數還有INSTR()LCASE()LOWER()LTRIM()MID()REPEAT()REPLACE()REVERSE()RIGHT()RPAD()RTRIM()SOUNDEX()SUBSTRING()TRIM()UCASE()UPPER()。(還需要注意:REPLACE()函數不同于其它函數,它總是忽略輸入字符串的 校對規則,并且進行大小寫不敏感的比較。)

對于合并多個字符串輸入并且返回單個字符串輸出的運算,應用標準SQL“聚合規則”:

·         如果存在顯式的校對規則X,那么使用X

·         如果存在顯式的校對規則XY,那么產生一個錯誤。

·         否則,如果全部校對規則是X,那么使用X

·         其它情況,結果沒有校對規則。

例如,使用CASE ... WHEN a THEN b WHEN b THEN c COLLATE X END。結果校對規則是X。對于CASEUNION||CONCAT()ELT()GREATEST()IF()LEAST()情況相同。

對于轉換為字符數據的運算,從運算得到的結果字符串的字符集和校對規則由character_set_connectioncollation_connection系統變量定義。這適用于CAST()CHAR()CONV()FORMAT()HEX()SPACE()函數。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/charset.html
北斗有巢氏 有巢氏北斗