深入研究MySQL結(jié)果字符串
MySQL結(jié)果字符串可能對于很多剛剛接觸MySQL數(shù)據(jù)庫的新人來說還比較陌生,下面就為您詳細(xì)分析MySQL結(jié)果字符串,供您參考。
MySQL中有許多操作符和函數(shù)可以返回字符串。那么返回的字符串使用什么字符集和校對規(guī)則?
對于簡單的函數(shù),即接收字符串輸入然后返回一個字符串結(jié)果作為輸出的函數(shù),輸出的字符集和校對規(guī)則與原始輸入的相同。例如,UPPER(X)返回一個字符串,其字符和 校對規(guī)則與X相同。類似的函數(shù)還有INSTR()、LCASE()、LOWER()、LTRIM()、MID()、REPEAT()、REPLACE()、REVERSE()、RIGHT()、RPAD()、RTRIM()、SOUNDEX()、SUBSTRING()、TRIM()、UCASE()和UPPER()。(還需要注意:REPLACE()函數(shù)不同于其它函數(shù),它總是忽略輸入字符串的 校對規(guī)則,并且進(jìn)行大小寫不敏感的比較。)
對于合并多個字符串輸入并且返回單個字符串輸出的運算,應(yīng)用標(biāo)準(zhǔn)SQL“聚合規(guī)則”:
· 如果存在顯式的校對規(guī)則X,那么使用X。
· 如果存在顯式的校對規(guī)則X和Y,那么產(chǎn)生一個錯誤。
· 否則,如果全部校對規(guī)則是X,那么使用X。
· 其它情況,結(jié)果沒有校對規(guī)則。
例如,使用CASE ... WHEN a THEN b WHEN b THEN c COLLATE X END。結(jié)果校對規(guī)則是X。對于CASE、UNION、CONCAT()、ELT()、GREATEST()、IF()和LEAST()情況相同。
對于轉(zhuǎn)換為字符數(shù)據(jù)的運算,從運算得到的結(jié)果字符串的字符集和校對規(guī)則由character_set_connection和collation_connection系統(tǒng)變量定義。這適用于CAST()、CHAR()、CONV()、FORMAT()、HEX()和SPACE()函數(shù)。
【編輯推薦】