當前位置:
首頁 > 最新 > 詳解MySQL中的字元串拼接函數

詳解MySQL中的字元串拼接函數

雖然SQL server和My sql的語句基本都一致,但是仍然存在一些小區別。就如字元串的連接來說,SQL server中的字元串連接是使用「+」來連接,不帶引號sql server是做加法運算。而my sql中無論是帶引號和不帶引號,它都將其先轉成數字型,然後在做運算。

CONCAT_WS(separator,str1,str2,…)

說明 : string1,string2代表字元串,concat_ws 代表 concat with separator,第一個參數是其它參數的分隔符。分隔符的位置放在要連接的兩個字元串之間。分隔符可以是一個字元串,也可以是其它參數。如果分隔符為 NULL,則結果為 NULL。函數會忽略任何分隔符參數後的 NULL 值。

CONCAT函數

功能:連接一個或多個字元串,然後返回連接後的字元串。

函數形式:CONCAT(str1,str2,…)

示例1:單個字元串連接

mysql> select concat(『Hello』);

+—————–+

| concat(『Hello』) |

+—————–+

| Hello |

+—————–+

1 row in set (0.00 sec)

示例2:連接多個字元串

mysql> select concat(『Hello』,』 『,』world』);

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

| concat(『Hello』,』 『,』world』) |

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

| Hello world |

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

1 row in set (0.00 sec)

示例3:任意連接的字元串為NULL,則連接後返回的結果也為NULL

mysql> select concat(『Hello』,』 『,』world』,null);

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

| concat(『Hello』,』 『,』world』,null) |

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

| NULL |

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

1 row in set (0.00 sec)

CONCAT_WS函數

功能:通過指定的「連接符」連接一個或多個字元串,然後返回連接後的字元串。

函數形式:CONCAT_WS(separator,str1,str2,…)

示例1:通過下劃線連接多個字元串

mysql> select concat_ws(『_』,』功能編號』,』需求編號』,』用例編號』);

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

| concat_ws(『_』,』功能編號』,』需求編號』,』用例編號』) |

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

| 功能編號_需求編號_用例編號 |

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

1 row in set (0.00 sec)

示例2:當連接的字元串中存在NULL時,則連接後返回的結果不為NULL

mysql> select concat_ws(『_』,』功能編號』,』需求編號』,』用例編號』,null);

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

| concat_ws(『_』,』功能編號』,』需求編號』,』用例編號』,null)

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

| 功能編號_需求編號_用例編號

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

1 row in set (0.00 sec)

示例3:當分隔符為null時,則返回的結果也為NULL

mysql> select concat_ws(null,』功能編號』,』需求編號』,』用例編號』);

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

| concat_ws(null,』功能編號』,』需求編號』,』用例編號』)

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

| NULL

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

1 row in set (0.00 sec)

GROUP_CONCAT函數

功能:將屬於同一分組的值進行連接,然後按分組返回結果字元串。

函數形式:GROUP_CONCAT(expr)

示例數據,假設Course表存在以下數據

mysql> select * from Course;

+——-+————–+

| stuId | courseName |

+——-+————–+

| 1001 | 大學語文 |

| 1001 | 原理力學 |

| 1001 | 固體物理 |

| 1002 | 大學英語 |

| 1002 | 專八英語 |

+——-+————–+

5 rows in set (0.00 sec)

示例1:獲取每個學生的所有課程,並在一行顯示

mysql> SELECT stuId, GROUP_CONCAT(courseName) AS courses FROM Course GROUP BY stuId;

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

| stuId | courses

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

| 1001 | 大學語文,原理力學,固體物理

| 1002 | 大學英語,專八英語

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

2 rows in set (0.02 sec)

示例2:GROUP_CONCAT的默認分隔符為「,」,也可通過SEPARATOR定義分隔符

mysql> SELECT stuId, GROUP_CONCAT(courseName SEPARATOR 『&&』) AS courses FROM Course GROUP BY stuId;

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

| stuId | courses

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

| 1001 | 大學語文&&原理力學&&固體物理

| 1002 | 大學英語&&專八英語

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

2 rows in set (0.00 sec)

示例3:對同一分組內的值進行排序後在連接

mysql> SELECT stuId, GROUP_CONCAT(courseName ORDER BY courseName desc) AS courses FROM Course GROUP BY stuId;

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

| stuId | courses

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

| 1001 | 大學語文,固體物理,原理力學

| 1002 | 大學英語,專八英語

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

2 rows in set (0.00 sec)

GDCA是一家提供信息安全證書的運營企業,從事信息安全證書數十載,在信息安全方面擁有雄厚的實力。GDCA已通過WEBTRUST國際認證,具備了國際化的電子認證服務能力。其中,GDCA的 產品之一SSL證書是一種伺服器端的數字證書,它能確保用戶在使用SSL協議進行數據交換時驗證和確保數據安全。GDCA SSL證書使用的加密長度是128/256位。據目前IT技術,40位強度的證書暴力破解耗費4小時,而對於128位證書破解需要一萬億年以上。目前,GDCA SSL證書是國內領先的安全證書。日後,GDCA將會堅持不斷深入研發,為各大網路商業平台提供更安全的信息安全證書,為網路安全虛擬世界貢獻一份微弱的力量。

文章轉載:https://www.trustauth.cn/wiki/21896.html


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 數安時代GDCA 的精彩文章:

超文本標記語言HTML
網路安全之中間人攻擊
Google啟動HSTS機制,瀏覽器強制執行HTTPS加密協議
修復cve-2016-8655漏洞的解決方案
Apache集成版環境phpStudy配置安https安全套接字層SSL

TAG:數安時代GDCA |