MySQL實(shí)現(xiàn)字段或字符串拼接的三種方式總結(jié)
一、CONCAT函數(shù)
concat函數(shù)是將多個(gè)字段或字符串拼接為一個(gè)字符串;但是字符串之間沒有任何分隔。
-- CONCAT函數(shù)的語(yǔ)法如下: CONCAT(str1,str2,...)
1.1、拼接非空字段或字符串
SELECT CONCAT(字段1,字段2,字段3,...) from 表名; -- 拼接表字段示例 SELECT CONCAT(id,genre,release_year) result from movies;
執(zhí)行結(jié)果如下:
SELECT CONCAT(字符串1,字符串2,字符串3,...) ; -- 拼接字符串示例 SELECT CONCAT('張三','李四','王五') result;
執(zhí)行結(jié)果如下:
1.2、拼接空(NULL)字段
如果拼接的字段中有一個(gè)為null,則結(jié)果為null。
SELECT CONCAT(字符串1,字符串2,字符串3,...) ; -- 拼接含有NULL字符串示例 SELECT CONCAT('張三',NULL,'王五') result;
執(zhí)行結(jié)果如下:
二、CONCAT_WS函數(shù)
concat_ws函數(shù)將多個(gè)字段或字符串拼接為一個(gè)字符串,且字符串直接可以指定分隔符;
-- CONCAT_WS函數(shù)的語(yǔ)法如下: CONCAT_WS(separator,str1,str2,...)
2.1、拼接非空字段或字符串
-- 拼接非空字段示例: SELECT CONCAT_WS(' ',id,genre,release_year) result from movies; -- 拼接字符串示例: SELECT CONCAT_WS(' ','張三','李四','王五') result ;
執(zhí)行結(jié)果如下:
2.2、拼接空(NULL)字段
-- 拼接空(NULL)字符串示例: SELECT CONCAT_WS(' ','張三',NULL,'王五') result ;
執(zhí)行結(jié)果如下:
三、GROUP_CONCAT函數(shù)
group_concat函數(shù)可以將多行字段數(shù)據(jù)合并為一行;且內(nèi)容之間可以指定分隔符;
-- group_concat函數(shù)的語(yǔ)法如下: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val] [LIMIT {[offset,] row_count | row_count OFFSET offset}])
3.1、默認(rèn)以逗號(hào)分隔符連接
-- 默認(rèn)的逗號(hào)分隔 SELECT GROUP_CONCAT(字段名) from 表名; -- 默認(rèn)逗號(hào)分隔示例: SELECT GROUP_CONCAT(genre) from movies;
執(zhí)行結(jié)果如下:
3.2、可自定義對(duì)字段去重排序和指定分隔符
3.2.1、自定義分隔符
-- 自定義字符串分隔符 SELECT GROUP_CONCAT(字段名 SEPARATOR '分隔符號(hào)') from 表名; -- 示例: SELECT GROUP_CONCAT(genre SEPARATOR ';') from movies;
3.2.2、將整數(shù)轉(zhuǎn)為字符串
--將整數(shù)字段轉(zhuǎn)為字符 SELECT GROUP_CONCAT(CAST(字段名 as CHAR) SEPARATOR '分隔符號(hào)') from 表名; -- 示例 SELECT GROUP_CONCAT(CAST(id as CHAR) SEPARATOR ';') from movies;
執(zhí)行結(jié)果如下:
3.2.3、多字段拼接
-- 多字段拼接 SELECT GROUP_CONCAT(字段1,字段2,字段3 SEPARATOR '分隔符號(hào)') from 表名; -- 示例 SELECT GROUP_CONCAT(release_year,genre,imdb SEPARATOR ';') from movies;
執(zhí)行結(jié)果如下:
3.2.4、字段去重排序和自定義分隔
-- 字段去重排序和自定義分隔 SELECT GROUP_CONCAT(DISTINCT 字段名 ORDER BY 字段名 asc或desc SEPARATOR '分隔符號(hào)') from movies; -- 示例 SELECT GROUP_CONCAT(DISTINCT genre ORDER BY genre DESC SEPARATOR ';') from movies;
執(zhí)行后結(jié)果如下:
3.3、group_concat的限制和設(shè)置
3.3.1、查看當(dāng)前group_concat函數(shù)的長(zhǎng)度
默認(rèn)是1024字節(jié)即1k;
-- 查看當(dāng)前group_concat函數(shù)的長(zhǎng)度 show variables like 'group_concat_max_len';
執(zhí)行結(jié)果如下:
3.3.2、設(shè)置當(dāng)前Session的group_concat函數(shù)的長(zhǎng)度,不影響其他的Session
-- 設(shè)置當(dāng)前Session的group_concat的長(zhǎng)度為1M SET SESSION group_concat_max_len = 1048576;
執(zhí)行結(jié)果如下:
3.3.3、設(shè)置全局 group_concat函數(shù)的長(zhǎng)度,需斷開后重新連接才生效
-- 設(shè)置全局 group_concat函數(shù)的長(zhǎng)度,需斷開后重新連接才生效 SET GLOBAL group_concat_max_len = 1048576;
執(zhí)行結(jié)果如下:
到此這篇關(guān)于MySQL實(shí)現(xiàn)字段或字符串拼接的三種方式總結(jié)的文章就介紹到這了,更多相關(guān)MySQL字段 字符串拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用mysql事件調(diào)度器定時(shí)刪除binlog
MySQL5.1.6起Mysql增加了事件調(diào)度器(Event Scheduler),可以用做定時(shí)執(zhí)行某些特定任務(wù),來取代原先只能由操作系統(tǒng)的計(jì)劃任務(wù)來執(zhí)行的工作2014-03-03MySQL運(yùn)維實(shí)戰(zhàn)之使用二進(jìn)制安裝部署
這篇文章主要為大家介紹了MySQL運(yùn)維實(shí)戰(zhàn)之使用二進(jìn)制安裝部署示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12解決mysql ERROR 1017:Can''t find file: ''/xxx.frm'' 錯(cuò)誤
如果重啟服務(wù)器前沒有關(guān)閉mysql,MySql的MyiSAM表很有可能會(huì)出現(xiàn) ERROR #1017 :Can't find file: '/xxx.frm' 的錯(cuò)誤2011-08-08MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別
本文給大家分享的是mysql索引中的KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別,即主鍵索引,唯一索引和普通索引的區(qū)別,希望大家能夠喜歡2017-07-07MySQL循環(huán)插入千萬(wàn)級(jí)數(shù)據(jù)
這篇文章主要介紹了MySQL如何實(shí)現(xiàn)循環(huán)插入千萬(wàn)級(jí)數(shù)據(jù),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-09-09