当前位置: 首页 > 工具软件 > php-concat > 使用案例 >

php 设置group concat,MySQL中group_concat函数详解

秦胡媚
2023-12-01

MySQL中group_concat函数详解

完整的语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

group_concat()函数需要与group by语句在一起使用,才能得到需要的效果。

基本查询

mysql> select * from aa;

+——+——+

| id| name |

+——+——+

|1 | 10|

|1 | 20|

|1 | 20|

|2 | 20|

|3 | 200  |

|3 | 500  |

+——+——+

以id分组,把name字段的值打印在一行,逗号分隔(默认)

mysql> select id,group_concat(name) from aa group by id;

+——+——————–+

| id| group_concat(name) |

+——+——————–+

|1 | 10,20,20|

|2 | 20 |

|3 | 200,500|

+——+——————–+

以id分组,把name字段的值打印在一行,分号分隔

mysql> select id,group_concat(name separator ';') from aa group by id;

+——+———————————-+

| id| group_concat(name separator ';') |

+——+———————————-+

|1 | 10;20;20 |

|2 | 20|

|3 | 200;500  |

+——+———————————-+

以id分组,把去冗余的name字段的值打印在一行,逗号分隔

mysql> select id,group_concat(distinct name) from aa group by id;

+——+—————————–+

| id| group_concat(distinct name) |

+——+—————————–+

|1 | 10,20|

|2 | 20  |

|3 | 200,500 |

+——+—————————–+

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

mysql> select id,group_concat(name order by name desc) from aa group by id;

+——+—————————————+

| id| group_concat(name order by name desc) |

+——+—————————————+

|1 | 20,20,10  |

|2 | 20|

|3 | 500,200|

+——+—————————————+

在wordpress中的使用

SELECT GROUP_CONCAT(wp_terms.slug) AS topic, p.post_date, p.post_title, p.post_count, p.post_name, p.comment_count

FROM wp_posts p

LEFT JOIN wp_term_relationships r ON (r.object_id = p.ID)

LEFT JOIN wp_term_taxonomy t ON (r.term_taxonomy_id = t.term_id)

LEFT JOIN wp_terms ON (wp_terms.term_id = t.term_id)

WHERE t.count > 0 AND t.taxonomy = 'category' AND p.post_status = 'publish'

GROUP BY p.ID

ORDER BY post_date DESC

"topic" 会返回 "php,mysql,css"这样的内容

 类似资料: