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


我想检索像苹果,索尼这样的数据。(像第一个查询一样),如何实现呢?

下面的示例表结构

公司表

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

最佳答案

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

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

10-10 06:26