【发布时间】:2017-10-09 09:45:24
【问题描述】:
我有以下子查询:
SELECT GROUP_CONCAT(tb5403_matrix_header.tb5403_name_ru)
FROM tb5403_matrix_header
WHERE tb5403_matrix_header.tb5403_id IN
(tb0201_tb5403_ids)
GROUP BY tb5403_matrix_header.tb5403_id
tb0201_tb5403_ids 字段包含用逗号分隔的数字:
10、2、4
5、8、7 等等。
但是,mysql 只选择字段的第一个元素:
10
5
任何帮助家伙!
【问题讨论】:
-
分享您的示例输入数据表
-
@KMS this is the full query: `SELECT tb0001_user.tb0001_name1, tb0001_user.tb0001_name2, (SELECT GROUP_CONCAT(tb5403_matrix_header.tb5403_name_ru) FROM tb5403_matrix_header WHERE tb5403_matrix_header.tb5403_id IN (tb0201_tb5403_ids) GROUP BY tb5403_matrix_header.tb5403_id) FROM tb0201_student INNER JOIN tb0001_user ON tb0201_tb0001_id=tb0001_user.tb0001_id INNER JOIN tb0012_class ON tb0001_user.tb0001_tb0012_id=tb0012_class.tb0012_id@98765s>
-
编辑您的问题以提供完整的查询。很难在评论部分阅读完整的查询。并且..提供表结构、数据和期望的结果。
-
IN()函数不能这样工作。它需要括号之间的值列表,并将IN之前的表达式与括号之间的所有值进行比较。括号之间只有一个值:存储在tb0201_tb5403_ids列中的字符串。 MySQL 是正确的。
标签: mysql group-by group-concat