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/