MySQL中函數CONCAT及GROUP_CONCAT 對應oracle中的wm_concat

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

一、CONCAT()函數
CONCAT()函數用于將多個字符串連接成一個字符串。
使用數據表Info作為示例,其中SELECT id,name FROM info LIMIT 1;的返回結果為
+----+--------+
| id | name???|
+----+--------+
|??1 | BioCyc |
+----+--------+
1、語法及使用特點:
CONCAT(str1,str2,…)???????????????????????
返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。可以有一個或多個參數。

2、使用示例:
SELECT CONCAT(id, ‘,’, name) AS con FROM info LIMIT 1;返回結果為
+----------+
| con??????|
+----------+
| 1,BioCyc |
+----------+

SELECT CONCAT(‘My’, NULL, ‘QL’);返回結果為
+--------------------------+
| CONCAT('My', NULL, 'QL') |
+--------------------------+
| NULL?????????????????????|
+--------------------------+

3、如何指定參數之間的分隔符
使用函數CONCAT_WS()。使用語法為:CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一個參數是其它參數的分隔符。分隔符的位置放在要連接的兩個字符串之間。分隔符可以是一個字符串,也可以是其它參數。如果分隔符為 NULL,則結果為 NULL。函數會忽略任何分隔符參數后的 NULL 值。但是CONCAT_WS()不會忽略任何空字符串。 (然而會忽略所有的 NULL)。

如SELECT CONCAT_WS('_',id,name) AS con_ws FROM info LIMIT 1;返回結果為
+----------+
| con_ws???|
+----------+
| 1_BioCyc |
+----------+

SELECT CONCAT_WS(',','First name',NULL,'Last Name');返回結果為
+----------------------------------------------+
| CONCAT_WS(',','First name',NULL,'Last Name') |
+----------------------------------------------+
| First name,Last Name?????????????????????????|
+----------------------------------------------+

二、GROUP_CONCAT()函數
GROUP_CONCAT函數返回一個字符串結果,該結果由分組中的值連接組合而成。
使用表info作為示例,其中語句SELECT locus,id,journal FROM info WHERE locus IN('AB086827','AF040764');的返回結果為
+----------+----+--------------------------+
| locus????| id | journal??????????????????|
+----------+----+--------------------------+
| AB086827 |??1 | Unpublished??????????????|
| AB086827 |??2 | Submitted (20-JUN-2002)??|
| AF040764 | 23 | Unpublished??????????????|
| AF040764 | 24 | Submitted (31-DEC-1997)??|
+----------+----+--------------------------+

1、使用語法及特點:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
[SEPARATOR str_val])
在 MySQL 中,你可以得到表達式結合體的連結值。通過使用 DISTINCT 可以排除重復值。如果希望對結果中的值進行排序,可以使用 ORDER BY 子句。
SEPARATOR 是一個字符串值,它被用于插入到結果值中。缺省為一個逗號 (","),可以通過指定 SEPARATOR "" 完全地移除這個分隔符。
可以通過變量 group_concat_max_len 設置一個最大的長度。在運行時執行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;
如果最大長度被設置,結果值被剪切到這個最大長度。如果分組的字符過長,可以對系統參數進行設置:SET @@global.group_concat_max_len=40000;

2、使用示例:
語句 SELECT locus,GROUP_CONCAT(id) FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus; 的返回結果為
+----------+------------------+
| locus????| GROUP_CONCAT(id) |
+----------+------------------+
| AB086827 | 1,2??????????????|
| AF040764 | 23,24????????????|
+----------+------------------+

語句 SELECT locus,GROUP_CONCAT(distinct id ORDER BY id?DESC SEPARATOR '_') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回結果為
+----------+----------------------------------------------------------+
| locus????| GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR?'_')?|
+----------+----------------------------------------------------------+
| AB086827 | 2_1??????????????????????????????????????????????????????|
| AF040764 | 24_23????????????????????????????????????????????????????|
+----------+----------------------------------------------------------+

語句SELECT locus,GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回結果為
+----------+--------------------------------------------------------------------------+
| locus????| GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') |
+----------+--------------------------------------------------------------------------+
| AB086827 | 2, Submitted (20-JUN-2002). 1, Unpublished???????????????????????????????|
| AF040764 | 24, Submitted (31-DEC-1997) . 23, Unpublished????????????????????????????|
+----------+--------------------------------------------------------------------------+

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡爬蟲--16.BeautifulSoup4

文章目錄一. BeautifulSoup4二. 解析實例三. 四大對象種類1. Tag2. NavigableString3. BeautifulSoup4. Comment四. 遍歷文檔樹1.直接子節點 :.contents .children 屬性1). .contents2). .children2. 所有子孫節點: .descendants 屬性3. 節點內容: .string 屬性五. …

Intel MKL 多線程設置

對于多核程序,多線程對于程序的性能至關重要。 下面,我們將對Intel MKL 有關多線程方面的設置做一些介紹: 我們提到MKL 支持多線程,它包括的兩個概念: 1>MKL 是線程安全的: MKL在設計時,就保…

【LA3415 訓練指南】保守的老師 【二分圖最大獨立集,最小割】

題意 Frank是一個思想有些保守的高中老師。有一次,他需要帶一些學生出去旅行,但又怕其中一些學生在旅行中萌生愛意。為了降低這種事情發生的概率,他決定確保帶出去的任意兩個學生至少要滿足下面四條中的一條。 1.身高相差大于40厘米 2.性別相…

行車記錄儀穩定方案:TC358778XBG:RGB轉MIPI DSI芯片,M-Star標配IC

原廠:Toshiba型號:TC358778XBG功能:TC358778XBG是一顆將RGB信號轉換成MIPI DSI的芯片,最高分辨率支持到1920x1200,其應用圖如下:產品特征:MIPI接口:(1)、支持…

java.sql.SQLException: 無法轉換為內部表示之解決

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 這個錯是因為 數據庫中字段類型和程序中該字段類型不一致。 比如程序將某字段當做Integer類型, 而數據庫存儲又使用另外一…

網絡爬蟲--17.【BeautifuSoup4實戰】爬取騰訊社招

文章目錄一.要求二.代碼示例一.要求 以騰訊社招頁面來做演示:http://hr.tencent.com/position.php?&start10#a 使用BeautifuSoup4解析器,將招聘網頁上的職位名稱、職位類別、招聘人數、工作地點、發布時間,以及每個職位詳情的點擊鏈接…

public static void main(String[] args)的理解

public:權限修飾符,權限最大。static:隨著MianDemo類的加載而加載,消失而消失。void: 沒有返回值main: 函數名,jvm識別的特殊函數名(String[] args):定義了一個字符串數組參數。這個字符串數組是保存運行main函數時輸入的參數的

Miller-Rabin素數測試

Miller-Rabin素數測試 給出一個小于1e18的數,問它是否為質數?不超過50組詢問。hihocoder 我是真的菜,為了不誤導他人,本篇僅供個人使用。 首先,一個1e18的數,樸素\(O(\sqrt{n})\)素數判定肯定爆炸。怎么辦呢…

throws Exception的意思

在方法聲明部分使用,表示該方法可能產生此異常,如果在方法聲明處使用了throws聲明異常,則該方法產生異常也不必捕獲,會直接把異常拋出到調用該方法的地方。

java list按照元素對象的指定多個字段屬性進行排序

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 直接提取重點代碼: /*** 把結果集合按時間字段排序,內部類重寫排序規則:* param list* return*/priv…

網絡爬蟲--18.python中的GIL(全局解釋器鎖)、多線程、多進程、并發、并行

參考文獻: python的GIL、多線程、多進程 并發和并行的區別? GIL(全局解釋器鎖)一看就懂的解釋! 多謝作者分享!

Socket和ServerSocket

對于即時類應用或者即時類的游戲,HTTP協議很多時候無法滿足于我們的需求。這會,Socket對于我們來說就非常實用了。下面是本次學習的筆記。主要分異常類型、交互原理、Socket、ServerSocket、多線程這幾個方面闡述。異常類型在了解Socket的內容之前&#…

徹底搞清楚Android中的 Attr

版權聲明:本文為sydMobile原創文章,轉載請務必注明出處! https://blog.csdn.net/sydMobile/article/details/79978187 相信這個詞對于Android開發者來說十分熟悉了,那么你對他到底有多了解呢? 回憶起我剛開始接觸Andr…

D. Relatively Prime Graph

Lets call an undirected graph G(V,E)G(V,E) relatively prime if and only if for each edge (v,u)∈E(v,u)∈E GCD(v,u)1GCD(v,u)1 (the greatest common divisor of vv and uu is 11). If there is no edge between some pair of vertices vv and uu then the value of GC…

解決 : org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.tanj.mapper.SendDeta…

網絡爬蟲--19.【Scrapy-Redis實戰】分布式爬蟲爬取房天下--環境準備

文章目錄0. 思路一. 虛擬機Ubuntu0中安裝Redis二. 虛擬機Ubuntu1中安裝Redis三. Windows服務器上安裝Redis四. 安裝cmder五. 安裝RedisDesktopManager六. 修改Windows中的配置文件redis.windows.conf七. Ubuntu連接Windows上 的Redis服務器-----------------------------------…

開發人員,請愛護你的身體

最近一周身體極度不適,口腔潰瘍、嗓子痛、感冒咳嗽、發燒,統統來了一個遍,非常痛苦。所以最近一直關注有關于軟件開發人員的身體健康問題的網站、文章。 看了許多文章,在結合自己在這一周之內痛苦的感受,所以才寫這樣…

tkinter中scale拖拉改變值控件(十一)

scale拖拉改變值控件 使用戶通過拖拽改變值 簡單的實現: 1 import tkinter2 3 wuya tkinter.Tk() 4 wuya.title("wuya") 5 wuya.geometry("300x2001020") 6 7 8 # 創建對象 9 scale1 tkinter.Scale(wuya, from_0, to100) 10 scale1.pac…

vue+elementUI開發實踐問題總結

最近公司項目采用vue,實行前后端分離開發,采用element-ui框架,對于項目中遇到的問題進行記錄,便于日后查詢。 vueelementui怎樣點擊table中的單元格觸發事件?官方文檔是采用的cell-click方式。實際項目中需要在不同的t…

Socket的getInputStream()方法

Socket的getInputStream()方法可以獲得網絡連接輸入,同時返回一個InputStream實例 。