Weird behaviour of SUM and CONCAT in MySql

∥☆過路亽.° 提交于 2019-11-30 04:37:50

问题


If I want to make a sum of a specific numeric column in MySQL, I do

SELECT SUM(MyColumn) FROM MyTable WHERE 1;

This returns for example number 100.

But I'd like to prepend some text to the sum value, so I do

SELECT CONCAT('Sum is: ',SUM(MyColumn)) FROM MyTable WHERE 1;

but instead of getting Sum is: 100 I get something like 546573743a20343030.

Is this a bug or a feature? What am I doing wrong?

UPDATE

SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1;

Casting to varchar doesn't work: getting SQL syntax error.


回答1:


As FreshPrinceOfSO suggested in the comments below my question, MySQL server doesn't handle casts to varchar.

So even though the query

SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1;

results in syntax error, casting to char instead works just fine:

SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS char(20))) FROM MyTable WHERE 1;


来源:https://stackoverflow.com/questions/22023468/weird-behaviour-of-sum-and-concat-in-mysql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!