mysql列連線 Mysql行連線,列連線

2021-10-19 19:13:12 字數 1514 閱讀 5747

關係型資料庫在應用時,有時想把結果進行一些連線,包括行連線,列連線等有時都會用到。本文介紹幾個常用的mysql連線函式。在此基礎上,可以實現較豐富的mysql查詢。

concat

關聯式資料庫查詢時有時希望把查詢結果進行連線,常使用concat實現。

concat(string,string...)

concat函式支援將多個string引數連線成乙個string。如:

|field1|field2|

| tv1 | tv2 |

| tv3 | tv4 |

select concat(filed1,field2) ftom tb;

將返回:

|tv1tv2|

|tv3tv4|

不同型別的filed會有對應的轉碼方式。mysql的concat函式在連線字串的時候,只要其中乙個是null,那麼將返回null。

concat_ws

concat函式在連線字串時沒有指定連線符的功能。concat_ws是concat with separator的意思。該函式功能和concat類似,只是在連線時可以指定separator。

concat_ws(separator,string,string...)

select concat_ws(',',field1,field2) from tb;

將得到|tv1,tv2|

|tv3,tv4|

concat_ws不會忽略空值,但會忽略null。

group_concat

前面兩個concat函式都是在不同的列上進行連線,或連線字串,有時想把某一列的所有值連線起來。這時就要用到group_concat函式。

group_concat實際上是乙個聚合函式,可以實現把一列的值聚合到一起,聚合的方法不同於count,sum等計數函式,而是concat。

group_concat([distinct] expr [,expr ...]

[order by

[asc | desc] [,col_name ...]]

[separator str_val])

最簡單的使用:

select group_concat(field1) from tb;

|tv1,tv3|

把field1這一列的所有值拿出來連線在一起組成乙個字串返回。

因為是聚合函式,所以和group組合起來使用,將在組內對列進行連線。同時,也可以傳多個field進去,此時把每一行的多列連線起來組成乙個列,再對列進行連線。預設情況下列內連線符號是',',也可以在引數中指定separator。

連線過程中還可以指定組內排序。如:

select group_concat(field1 order by field1 desc separator '-');

將得到|tv3-tv1|

wm_concat

除了在mysql中使用類似的函式之外,在hive中也有cancat,group_concat函式,使用方法類似,在odps中也有wm_concat具備和group_concat類似的功能。

Mysql行連線,列連線

關係型資料庫在應用時,有時想把結果進行一些連線,包括行連線,列連線等有時都會用到。本文介紹幾個常用的mysql連線函式。在此基礎上,可以實現較豐富的mysql查詢。關聯式資料庫查詢時有時希望把查詢結果進行連線,常使用concat實現。concat string,string.concat函式支援將多...

mysql列連線 mysql 多列連線

1 concat 函式 1.1 mysql的concat函式可以連線乙個或者多個字串,如 mysql select concat 10 concat 10 10 1 row in set 0.00 sec mysql select concat 11 22 33 concat 11 22 33 11...

mysql列邊行 mysql 行轉列 列轉行

group concat 函式說明 手冊上說明 該函式返回帶有來自乙個組的連線的非null值的字串結果 通俗點理解,其實是這樣的 group concat 會計算哪些行屬於同一組,將屬於同一組的列顯示出來。要返回哪些列,由函式引數 就是欄位名 決定。分組必須有個標準,就是根據group by指定的列...