如何将GROUP_CONCAT与多个值一起使用?

时间:2017-09-26 13:28:10

标签: mysql pdo

我想从我的SQL数据库通过php获取一些数据:

GROUP_CONCAT(DISTINCT cat.name SEPARATOR ",") AS cats

这给了我一个清单:

sam, john, joe

我得到了一些像这样的其他数据:

GROUP_CONCAT(DISTINCT cat.id SEPARATOR ",") AS cat_ids

这里我得到了结果

1,2,3

现在这是我的问题。我想结合这些值来得到这样的结果:

<a href="1">sam</a><a href="2">john</a><a href="3">joe</a>

我的方法:

GROUP_CONCAT(CONCAT("<a href=\'",cat.id,"\'>",cat.name,"</a>")) AS cats 

但是在这里我只得到一个空白的白页。

2 个答案:

答案 0 :(得分:5)

我只使用单引号作为字符串,双引号用于属性html。此外,我在GROUP_CONCAT

中使用了一个空格(&#34;&#34;)作为分隔符
CREATE TABLE GC1 (name VARCHAR(20), id INT);

    INSERT INTO GC1 VALUES ('sam',1);
    INSERT INTO GC1 VALUES ('john',2);
    INSERT INTO GC1 VALUES ('joe',3);
    SELECT * FROM GC1;
    SELECT GROUP_CONCAT( CONCAT('<a href="',id,'">',name,'</a>') SEPARATOR " ") AS X FROM GC1;

输出:

<a href="1">sam</a> <a href="2">john</a> <a href="3">joe</a>

答案 1 :(得分:1)

GROUP_CONCAT(CONCAT('<a href = "', `cat`.`id`, '">', `cat`.`name`, '</a>') SEPARATOR '') AS `cats`

为我工作