Mysql合併查詢結果

2022-09-05 16:48:20 字數 1732 閱讀 4555

本文通過例項介紹mysql中的group_concat函式的使用方法,比如select group_concat(name) 。

mysql中group_concat函式

完整的語法如下:

group_concat([distinct] 要連線的字段 [order by asc/desc 排序字段] [separator '分隔符'])

基本查詢 

mysql> select * from aa;

| id| name |

|1 | 10|

|1 | 20|

|1 | 20|

|2 | 20|

|3 | 200 |

|3 | 500 |

6 rows in set (0.00 sec)

以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|

3 rows in set (0.00 sec)

以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 |

3 rows in set (0.00 sec)

以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 |

3 rows in set (0.00 sec)

以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|

3 rows in set (0.00 sec)

在工作中在庫總匯入好友id的時候遇見的問題,在uchome_friend中的好友都是一一對應的存在資料庫中,而我的新庫中好友的id是使用逗號分割存到乙個欄位中的,現在我要將uchome_friend的好友匯入到新的庫中,首先肯定是要分組的,然後按照uid分組之後該如果將fuid連線成1,2,3這樣的形式呢,我知道在mysql中是有個concat()函式來連線字元的,但是這個函式只能處理這樣的型別,concat(fuid,'_sky.jpg');如果要連線所有的fuid必須這樣concat(fuid,fuid)而且下乙個fuid必須是uchome_friend中的下乙個id,但是這裡並不能做到,後來查資料發現了group_concat()這個函式

Mysql游標查詢結果合併

drop procedure ifexists insert extra column delimiter create procedure insert extra column begin 定義判斷變數 declare flag varchar 50 定義查詢變數 declare cur cur...

mysql 合併兩個查詢結果

顯然,查詢結果的time為主鍵,目的是將兩個查詢結果合成乙個結果。如果在 中實現,一次便利乙個表新增到另外乙個表中,效率非常低。那麼在mysql 中實現方式為 出金 withdraw select from select date complete time as time,sum amt as a...

union 聯合 合併查詢結果

select id,name,price from shops where price 150 union select id,name,price from shops where price 50 作用 把兩次或多次查詢結果合併在一起,可以來自多張表,多次sql 語句時取出的列明不同,此時以第乙...