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

标签 mysql sql

我正在尝试创建一个子查询,它将在另一个子查询“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/

相关文章:

mysql - 当日期字段包含特定小时/分钟时 SQL 更新日期字段

sqlite alter table 在单个语句中添加多个列

mysql - 通过数据类型不匹配的两列连接两个表

SQL查询: find all devices that have ALL of the Ids passed in

PHP:多线程 PHP/Web 服务?

mysql - MySQL 8中无效的regexp

sql - 在 ASP 3.0(经典)上捕获 SQL 错误并返回特定的 HttpStatus

sql - SQL查询同一表中两个项目之间的关系

php - 如何使用 MYSQLi 连接三个表?

MySQL 外键约束在我的 Rails 3.1 应用程序中抛出 ActiveRecord::StatementInvalid(锁定等待超时)