2012-07-31 73 views
1

我在我的db中有一列叫storageFolder。所述列中的所有行都包含值8并且被设置为INT(4)。concat编号到字符串,编号总是返回零

在我的SELECT查询中,我试图用'组'的前缀返回此列,以使记录读取'group8'。

我试图用CONCAT要做到这一点,是这样的:

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

但这总是被退回,以零:

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

任何想法?

+0

真的是它的值为'group0'和'storageFolder'有8个?我想你应该再次检查。我尝试过这个,并且它也整合了整数值。可能是mysql版本的问题。 – Bajrang 2012-07-31 04:27:26

+0

@Bajrang:我想我在其他地方确实有问题。该列曾经是'group8'作为值的VARCHAR。我最近修改它为INT(4)和'8'的值。也许在那里出了问题。我的值在phpMyAdmin中仍然为'8'。没有明显的原因。 – TheCarver 2012-07-31 04:30:38

+0

您将哪一列修改为INT(4),这是“storageFolder”吗? – Bajrang 2012-07-31 04:36:07

回答

1

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

3

尝试铸造storageFolder为字符串您连接之前:

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

我很感激你的帮助,但我设法修复它。我的列曾经是一个值为'group8'的VARCHAR,我最近修改它为一个值为'8'的INT(4)。不知道这会导致这种错误。无论如何,我删除了专栏并重新创建并按预期工作。奇怪! – TheCarver 2012-07-31 04:34:18

6
SELECT photoID, CONCAT('group', CAST(storageFolder AS CHAR)) AS storageFolder FROM photos 
+0

我很感激你的帮助,但我设法修复它。我的列曾经是一个值为'group8'的VARCHAR,我最近修改它为一个值为'8'的INT(4)。不知道这会导致这种错误。无论如何,我删除了专栏并重新创建并按预期工作。奇怪! – TheCarver 2012-07-31 04:34:33