mysql 固定符号分列显示_MySql中指定符号分割并分行展示
1.涉及到的函數(shù)三個:
1.1 REPLACE('value','str1','str2')
用法規(guī)則:使用str2替換掉value中的所有的str1;
SELECT REPLACE('我來了','來','走')
執(zhí)行結果如下:
1.2 LENGTH(str)
用法規(guī)則:獲取字符串的長度,使用 uft8(UNICODE 的一種變長字符編碼,又稱萬國碼)編碼字符集時,一個漢字是 3 個字節(jié),一個數(shù)字或字母是一個字節(jié)。
SELECT LENGTH('我來了'),LENGTH('you')
執(zhí)行結果如下:
1.3 SUBSTRING_INDEX(str,delim,count)
用法規(guī)則:substring_index(“待截取有用部分的字符串”,“截取數(shù)據(jù)依據(jù)的字符”,截取字符的位置N(截取數(shù)據(jù)依據(jù)的字符出現(xiàn)的次數(shù)))
如果count是正數(shù)則從左往右截取,如果count是負數(shù)則從右往左截取,count是從1開始的不存在0,否則查詢結果為空;
SELECT SUBSTRING_INDEX('我,是,菜,雞',',',1)--以第一個逗號為分割,截取第一個字符串
執(zhí)行結果如下:
SELECT SUBSTRING_INDEX('我,是,菜,雞',',',2)--以第二個逗號為分割,截取前兩個字符串
執(zhí)行結果如下:
SELECT SUBSTRING_INDEX('我,是,菜,雞',',',-2)-- 從右往左數(shù)第二個逗號為分割,截取兩個字符串
執(zhí)行結果如下:
案例:
現(xiàn)有一張table1表,表中信息如截圖,需要將表中的roles字段中的值按照‘,’分割,并且每個字符串展示為1行:
實現(xiàn)的sql如下:
SELECTa.owner_type,SUBSTRING_INDEX( SUBSTRING_INDEX( a.roles,',', b.help_topic_id + 1 ), ',',- 1)FROMtable1 aJOIN mysql.help_topic b ON b.help_topic_id < ( LENGTH( a.roles ) - LENGTH( REPLACE ( a.roles, ',', '' ) ) + 1 );
執(zhí)行結果:
案例語句分析:
SUBSTRING_INDEX(SUBSTRING_INDEX(a.roles,',',b.help_topic_id + 1),',',-1)
在mysql.help_topic表中help_topic_id的值是(0,1,2······N),是從零開始的,SUBSTRING_INDEX(str,delim,count)中的count位置函數(shù)必須是從1開始,所以需要(b.help_topic_id + 1)從1開始循環(huán),當help_topic_id 值為0時以上語句取值為第一個字符串,當help_topic_id 值為1是以上語句執(zhí)行后取第二個字符串,如截圖:
以下sql字段執(zhí)行結果求的是roles的值可以按照 ' , ' 被分割為多少個字符串:
(LENGTH(a.roles) - LENGTH(REPLACE(a.roles,',','')) + 1 )
執(zhí)行后的結果如截圖:
至于如何使用join進行循環(huán)的這里就不多做描述,可以百度下join的使用講解^-^。。。。。。。
總結
以上是生活随笔為你收集整理的mysql 固定符号分列显示_MySql中指定符号分割并分行展示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件开发者如何加密软件产品文件加密软件开
- 下一篇: 轮廓查找与绘制总结轮廓查找与绘制总结怎么