MySQL 中常常需要對字符類型的數(shù)據(jù)進行數(shù)值計算,例如對字符串型的訂單號進行數(shù)字排序等。此時就需要將字符型數(shù)據(jù)轉(zhuǎn)換成數(shù)字型數(shù)據(jù)。
MySQL 提供了很多函數(shù)來完成這個轉(zhuǎn)換過程,最常用的函數(shù)為 CONVERT() 和 CAST()。
CONVERT() 函數(shù)的語法如下:
CONVERT(expr,type)
其中,expr 是要轉(zhuǎn)換的表達式,type 是目標(biāo)數(shù)據(jù)類型。type 可以是以下數(shù)據(jù)類型之一:
UNSIGNED INTEGER SIGNED INTEGER DECIMAL[(M[,D])]
例如,將一個字符串型的數(shù)字轉(zhuǎn)換成有符號整型,可以使用以下語句:
SELECT CONVERT('123', SIGNED INTEGER);
CAST() 函數(shù)的語法和 CONVERT() 函數(shù)類似,只是使用方式略有不同:
CAST(expr AS type)
例如,將一個字符串型的數(shù)字轉(zhuǎn)換成浮點型數(shù)據(jù),可以使用以下語句:
SELECT CAST('123.45' AS DECIMAL(10,2));
需要注意的是,轉(zhuǎn)換過程中如果原始數(shù)據(jù)格式不符合目標(biāo)數(shù)據(jù)類型的要求,則會出現(xiàn)錯誤。因此,在使用這些函數(shù)時需要先確保數(shù)據(jù)格式的正確性。