为什么SUM(`column`)返回一个字符串而不是一个整数?

时间:2016-03-17 09:40:14

标签: php mysql pdo

我正在使用Laravel并且有一个查询选择使用列的$r=$this->model->delete($id); print_r($r); DB::raw()

SUM()

我已安装mysqldn,AFAIK Laravel使用DB::raw("SUM(points) as game_points")

PDO是一个字符串,无论列的类型是什么。 (这是一个整数列

如果我这样做:

game_points

DB::raw("COUNT(id) as foo_bar")以整数形式返回。

2 个答案:

答案 0 :(得分:10)

它既不是Laravel也不是PDO问题。

根据manualSUM()会为精确值参数(DECIMALinteger)返回DECIMAL值。在PHP中表示DECIMAL类型的唯一方法是 string

答案 1 :(得分:-3)

您可以尝试使用CONVERT(INT, game_points)

将该字符串转换为整数

根据bugs.mysql.comsum()返回NEWDECIMAL数据类型,相当于php中的string,而count()返回integer数据类型。