MySql group_concat作为整数列表,而不是字符串

时间:2014-02-11 15:13:59

标签: mysql sql

我正在尝试创建一个子查询,该查询将用于另一个子查询“In”语句中。我想选择一组值并从select中创建一个coma分隔列表。我有的代码似乎工作,除了,它作为字符串列表返回,但我需要一个整数列表。这就是我所拥有的:

SELECT 
GROUP_CONCAT(t.MyCol SEPARATOR  ',')
 FROM 
activities_themes t
where t.PrimaryCol= 87
GROUP BY t.PrimaryCol

就像我说的,这会返回预期的结果,但是作为字符串。当我复制结果并将其粘贴到文本编辑器中时,整个字符串周围都有单引号。有人知道如何将结果作为整数返回而没有引号吗?这需要用于SQL语句,而不是存储过程。

ADDED

这是完整的陈述:

SELECT
themes.Theme 
from 
themes as themes 
where 
themes.ThemesID in 
(
    SELECT 
    GROUP_CONCAT(t.MyCol SEPARATOR  ',')
     FROM 
    activities_themes t
    where t.PrimaryCol= 87
    GROUP BY t.PrimaryCol
)

如果我运行内部子查询,我得到一个这样的列表:2,3,5,7,8。如果我然后用复制的列表替换子查询,它可以正常工作。我得到了一个值列表。但是,如果我按原样运行代码,它将只返回子查询的第一个值。

1 个答案:

答案 0 :(得分:0)

根据@ dwjw的评论,如果你只是运行:

SELECT
themes.Theme 
from 
themes as themes 
where 
themes.ThemesID in 
(
    SELECT 
    t.MyCol
     FROM 
    activities_themes t
    where t.PrimaryCol= 87
)
相关问题