MySQL 是一個(gè)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),廣泛應(yīng)用于Web開(kāi)發(fā)領(lǐng)域。其中,字符串轉(zhuǎn)換為數(shù)字是很常見(jiàn)的需求,MySQL 提供了以下幾個(gè)函數(shù)可以實(shí)現(xiàn)字符串轉(zhuǎn)數(shù)字:
1. CAST(str AS type) 2. CONVERT(str, type) 3. ABSOLUTE(value) 4. MOD(N, M)
1. CAST(str AS type)
將字符串轉(zhuǎn)換為指定類(lèi)型的數(shù)值,type可以指定為以下類(lèi)型:
SIGNED INTEGER UNSIGNED INTEGER DECIMAL[(M[, D])] FLOAT[(M,D)] DOUBLE[(M,D)] REAL[(M,D)]
例如:
SELECT CAST('123' AS SIGNED INTEGER); -- 輸出:123 SELECT CAST('123.45' AS FLOAT(5, 2)); -- 輸出:123.45
2. CONVERT(str, type)
將字符串轉(zhuǎn)換為指定類(lèi)型的數(shù)值,type可以指定為以下類(lèi)型:
BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL[(M[, D])] SIGNED INTEGER UNSIGNED INTEGER TIME UNSIGNED INTEGER
例如:
SELECT CONVERT('123.45', UNSIGNED INTEGER); -- 輸出:123 SELECT CONVERT('2020-01-01', DATETIME); -- 輸出:2020-01-01 00:00:00
3. ABSOLUTE(value)
返回value的絕對(duì)值,如果value是字符串,會(huì)嘗試將其轉(zhuǎn)換為數(shù)值再進(jìn)行計(jì)算。
例如:
SELECT ABSOLUTE('-123.45'); -- 輸出:123.45
4. MOD(N, M)
返回N除以M的余數(shù),如果N或M是字符串,會(huì)嘗試將其轉(zhuǎn)換為數(shù)值再進(jìn)行計(jì)算。
例如:
SELECT MOD('10', '3'); -- 輸出:1
綜上所述,MySQL 提供了多種實(shí)現(xiàn)字符串轉(zhuǎn)數(shù)字的函數(shù),開(kāi)發(fā)人員可以根據(jù)實(shí)際需求選擇合適的函數(shù)。