mysql存储过程 将临时表中的多个字段抽成集合
时间: 2023-07-01 13:09:57 浏览: 113
Mysql通过存储过程分割字符串为数组
可以使用 GROUP_CONCAT 函数将临时表中的多个字段抽成集合。下面是一个示例:
假设我们有一个临时表 temp_table,其中包含 id、name 和 age 三个字段,我们想要将 name 和 age 抽成一个集合,可以使用以下存储过程:
```
CREATE PROCEDURE get_names_and_ages()
BEGIN
DECLARE names_and_ages TEXT;
SELECT GROUP_CONCAT(CONCAT(name, ':', age) SEPARATOR ';') INTO names_and_ages
FROM temp_table;
SELECT names_and_ages;
END;
```
在此存储过程中,我们首先声明了一个 names_and_ages 变量来存储抽出的集合。然后,我们使用 GROUP_CONCAT 函数将 name 和 age 拼接成一个字符串,并用分号作为分隔符。最后,我们将结果存储到 names_and_ages 变量中,并使用 SELECT 语句将其返回。
当我们调用此存储过程时,它将返回一个字符串,其中包含所有的 name 和 age,并用分号分隔。例如,如果 temp_table 中包含以下数据:
```
id | name | age
---+--------+-----
1 | Alice | 25
2 | Bob | 30
3 | Charlie| 35
```
那么调用 get_names_and_ages 存储过程将返回以下字符串:
```
"Alice:25;Bob:30;Charlie:35"
```
希望这个示例能帮助你解决问题!
阅读全文