MySQL實現(xiàn)字段或字符串拼接的三種方式總結(jié)
一、CONCAT函數(shù)
concat函數(shù)是將多個字段或字符串拼接為一個字符串;但是字符串之間沒有任何分隔。
-- CONCAT函數(shù)的語法如下: 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)字段
如果拼接的字段中有一個為null,則結(jié)果為null。
SELECT CONCAT(字符串1,字符串2,字符串3,...) ; -- 拼接含有NULL字符串示例 SELECT CONCAT('張三',NULL,'王五') result;
執(zhí)行結(jié)果如下:
二、CONCAT_WS函數(shù)
concat_ws函數(shù)將多個字段或字符串拼接為一個字符串,且字符串直接可以指定分隔符;
-- CONCAT_WS函數(shù)的語法如下: 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ù)的語法如下: 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、默認以逗號分隔符連接
-- 默認的逗號分隔 SELECT GROUP_CONCAT(字段名) from 表名; -- 默認逗號分隔示例: SELECT GROUP_CONCAT(genre) from movies;
執(zhí)行結(jié)果如下:
3.2、可自定義對字段去重排序和指定分隔符
3.2.1、自定義分隔符
-- 自定義字符串分隔符 SELECT GROUP_CONCAT(字段名 SEPARATOR '分隔符號') from 表名; -- 示例: SELECT GROUP_CONCAT(genre SEPARATOR ';') from movies;
3.2.2、將整數(shù)轉(zhuǎn)為字符串
--將整數(shù)字段轉(zhuǎn)為字符 SELECT GROUP_CONCAT(CAST(字段名 as CHAR) SEPARATOR '分隔符號') from 表名; -- 示例 SELECT GROUP_CONCAT(CAST(id as CHAR) SEPARATOR ';') from movies;
執(zhí)行結(jié)果如下:
3.2.3、多字段拼接
-- 多字段拼接 SELECT GROUP_CONCAT(字段1,字段2,字段3 SEPARATOR '分隔符號') 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 '分隔符號') from movies; -- 示例 SELECT GROUP_CONCAT(DISTINCT genre ORDER BY genre DESC SEPARATOR ';') from movies;
執(zhí)行后結(jié)果如下:
3.3、group_concat的限制和設置
3.3.1、查看當前group_concat函數(shù)的長度
默認是1024字節(jié)即1k;
-- 查看當前group_concat函數(shù)的長度 show variables like 'group_concat_max_len';
執(zhí)行結(jié)果如下:
3.3.2、設置當前Session的group_concat函數(shù)的長度,不影響其他的Session
-- 設置當前Session的group_concat的長度為1M SET SESSION group_concat_max_len = 1048576;
執(zhí)行結(jié)果如下:
3.3.3、設置全局 group_concat函數(shù)的長度,需斷開后重新連接才生效
-- 設置全局 group_concat函數(shù)的長度,需斷開后重新連接才生效 SET GLOBAL group_concat_max_len = 1048576;
執(zhí)行結(jié)果如下:
到此這篇關(guān)于MySQL實現(xiàn)字段或字符串拼接的三種方式總結(jié)的文章就介紹到這了,更多相關(guān)MySQL字段 字符串拼接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決mysql ERROR 1017:Can''t find file: ''/xxx.frm'' 錯誤
如果重啟服務器前沒有關(guān)閉mysql,MySql的MyiSAM表很有可能會出現(xiàn) ERROR #1017 :Can't find file: '/xxx.frm' 的錯誤2011-08-08MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別
本文給大家分享的是mysql索引中的KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別,即主鍵索引,唯一索引和普通索引的區(qū)別,希望大家能夠喜歡2017-07-07