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/