mysql - GROUP_CONCAT 字符串问题

标签 mysql sql

SELECT (SELECT GROUP_CONCAT(companyName)FROM company WHERE id IN (27,38)) AS companyName, t.* 
FROM Test t  

它返回这样的输出,

>Apple, Sony

但是如果我将 id 作为完整字符串传递,

SELECT (SELECT GROUP_CONCAT(companyName) 
        FROM company WHERE id IN ("27,38")) AS companyName, t.* 
FROM Test t  

因此它仅返回第一个公司名称,因此输出如下

>Apple

我想检索像Apple、Sony这样的数据。(如第一个查询),我怎样才能实现这个?

下面的示例表结构

公司表

    --------------------
    ID      companyName
    -------------------
    27         Apple
    28         Sony
    .         .
    .         . 

最佳答案

您将 27 和 28 作为单个字符串传递,因此 MySQL 会考虑第一个数字 27,这就是它返回 apple 的原因。如果你想返回 Apple 和 Sony,你必须拆分字符串。

关于mysql - GROUP_CONCAT 字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46550291/

相关文章:

SQL 错误 42803 : I shouldn't be getting this error, 怎么回事?

php - MySQL 查询可以包含 HTML 值吗?

php - 使用 PHP PDO 查询选择 2 列

php - 仅检索到一个数据 - 通过链接查询字符串参数 -php/Mysql

c# - 使用 SQL DB 表创建下拉菜单 C#

sql - Teradata:数据透视中的 IN 子句无法从表中获取数据

php - 使用逗号分隔值更新数据库 mysql

PHP 不显示 MYSQL 查询的结果

mysql - has_many 通过不同的外键

c# - 从 .Net 获取存储过程信息