我正在尝试创建一个子查询,该查询将用于另一个子查询“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。如果我然后用复制的列表替换子查询,它可以正常工作。我得到了一个值列表。但是,如果我按原样运行代码,它将只返回子查询的第一个值。
答案 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
)