在 MySQL 中,可以使用 GROUP_CONCAT 和 CONCAT 函数将表中的元素转换为键值对。
假设我们有一个表 table1,其中包含两列数据:key_col 和 value_col。我们想要将这些数据转换为键值对,并用 , 分隔每个键值对。可以使用以下 SQL 语句:
SELECT CONCAT(key_col, ':', GROUP_CONCAT(value_col SEPARATOR ',')) AS key_value_pairs
FROM table1
GROUP BY key_col;
这条 SQL 语句的作用是将每个不同的 key_col 值作为分组条件,然后对每个分组内的所有 value_col 进行聚合操作,并用 , 分隔它们。最后再将 key_col 和聚合后的字符串连接起来,并用 : 分隔它们,生成键值对。
例如,如果我们有以下数据:
| key_col | value_col |
|---|---|
| A | 1 |
| B | 2 |
| A | 3 |
| B | 4 |
那么上述 SQL 语句将会生成如下结果:
| key_value_pairs |
|---|
| A:1,3 |
| B:2,4 |
其中,每一行表示一个键值对。例如第一行表示键值对 "A" 的值为 "1,3"。




