我正在尝试创建一个子查询,它将在另一个子查询“In”语句中使用。我想选择一组值并从选择中创建一个逗号分隔的列表。我的代码似乎可以工作,除了它作为字符串列表返回,但我需要一个整数列表。这是我所拥有的:
SELECT
GROUP_CONCAT(t.MyCol SEPARATOR ',')
FROM
activities_themes t
where t.PrimaryCol= 87
GROUP BY t.PrimaryCol
就像我说的,这会返回预期的结果,但作为字符串。当我复制结果并将其粘贴到文本编辑器中时,整个字符串周围有单引号。有人知道如何将结果返回为整数而不带引号吗?这需要用于 SQL 语句,而不是存储过程。
已添加
这是完整的声明:
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。如果我然后用复制的列表替换子查询,它就可以正常工作。我得到一个值列表。但是,如果我按原样运行代码,它只会返回子查询的第一个值。
最佳答案
按照 @dwjw 的评论,如果你只是运行:
SELECT
themes.Theme
from
themes as themes
where
themes.ThemesID in
(
SELECT
t.MyCol
FROM
activities_themes t
where t.PrimaryCol= 87
)
关于MySql group_concat 作为整数列表,而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705689/