1

我必须从 MySQL 数据库中添加两个或多个字符串,为此我使用了CONCAT()函数。

classes这是存储 PHP 类的第一个表。

class_id  class_name
--------  ----------
       1  accountant
       2  attendance

另一个methods存储每个类方法的表。

class_id  method_name            
--------  -----------------------
       1  __construct            
       1  add_expenses

       2  __construct            
       2  attendance_report

我编写了连接查询。

SELECT 
  `cc`.`class_id`,
  `cc`.`class_name`,
  CONCAT(`cm`.`method_name`, ',') AS `method_name` 
FROM
  `classes` AS `cc` 
  LEFT JOIN `methods` AS `cm` 
    ON `cm`.`class_id` = `cc`.`class_id` 
GROUP BY `cc`.`class_name`;

这是行不通的。我的预期输出是

class_id  class_name      method_name 
--------  --------------  ------------
       1  accountant      __construct, add_expenses, .... n
       2  attendance      __construct, attendance_report, .... n

有任何想法吗?

4

1 回答 1

3

采用

GROUP_CONCAT

代替

CONCAT

GROUP_CONCAT(cm.method_name)您不需要将逗号作为默认分隔符传递。

于 2011-06-30T12:46:30.237 回答