Concat编号为字符串,编号始终返回零

问题描述 投票:1回答:3

我的数据库中有一个名为storageFolder的列。所述列中的所有行都包含值8,并设置为INT(4)。

在我的SELECT查询中,我试图返回带有'group'前缀的列,以使记录读为'group8'。

我正在尝试使用CONCAT来执行此操作,如下所示:

SELECT photoID, CONCAT('group',storageFolder) AS storageFolder FROM photos

但这总是返回,零:

storageFolder
----------------
group0

有任何想法吗?

mysql sql
3个回答
7
投票
SELECT photoID, CONCAT('group', CAST(storageFolder AS CHAR)) AS storageFolder FROM   photos

3
投票

在连接之前尝试将storageFolder拼接到字符串:

SELECT photoID, 
       CONCAT('group', CAST(storageFolder AS CHAR(10))) AS storageFolder
FROM   photos

1
投票

我设法解决了这个问题。我的列曾经是一个值为'group8'的VARCHAR,我最近将它修改为INT(4),其值为'8'。不确定会导致此错误的原因。无论如何,我删除了列并重新创建它并按预期工作。奇怪!