色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql sum()變成字符串

錢衛(wèi)國2年前14瀏覽0評論

MySQL中的SUM()函數(shù)簡介

MySQL中的SUM()函數(shù)是用來對指定列進(jìn)行求和計(jì)算的函數(shù),其語法為:SUM(column_name)。參數(shù)column_name是要進(jìn)行求和計(jì)算的列名。

當(dāng)SUM()函數(shù)返回字符串類型

在MySQL中,如果指定的列中含有非數(shù)值類型的數(shù)據(jù),如字符串類型的數(shù)據(jù),那么SUM()函數(shù)將返回字符串類型的結(jié)果。這是因?yàn)镸ySQL在計(jì)算無法轉(zhuǎn)換為數(shù)值的數(shù)據(jù)時(shí),會將其轉(zhuǎn)換為0,然后執(zhí)行SUM()函數(shù)的計(jì)算。

例如,如果我們有一個(gè)包含數(shù)字和字符串類型數(shù)據(jù)的projects表,并對其中的budget列進(jìn)行求和計(jì)算,那么結(jié)果將是一個(gè)字符串類型的字符串:

SELECT SUM(budget) FROM projects;
結(jié)果:'1065000abc'

可以看出,原始數(shù)據(jù)中既有數(shù)值類型的數(shù)據(jù),也有字符串類型的數(shù)據(jù),并且這些字符串類型的數(shù)據(jù)中包含了除數(shù)字之外的字符,導(dǎo)致進(jìn)行求和計(jì)算時(shí)結(jié)果變成了字符串類型的字符串。

如何避免SUM()函數(shù)返回字符串類型的結(jié)果

如果我們不希望SUM()函數(shù)返回字符串類型的結(jié)果,那么可以使用MySQL的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)CAST()或CONVERT()來將非數(shù)值類型的數(shù)據(jù)轉(zhuǎn)換為數(shù)值類型的數(shù)據(jù),從而避免SUM()函數(shù)返回字符串類型的結(jié)果。

例如,我們可以將上方查詢語句修改為以下形式:

SELECT SUM(CAST(budget AS UNSIGNED)) FROM projects;
結(jié)果:1065000

這樣,在對budget列進(jìn)行求和計(jì)算時(shí),字符串類型的數(shù)據(jù)將被轉(zhuǎn)換為數(shù)值類型的數(shù)據(jù),從而避免了SUM()函數(shù)返回字符串類型的結(jié)果。