日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 固定符号分列显示_MySql中指定符号分割并分行展示

發布時間:2023/12/4 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 固定符号分列显示_MySql中指定符号分割并分行展示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.涉及到的函數三個:

1.1 REPLACE('value','str1','str2')

用法規則:使用str2替換掉value中的所有的str1;

SELECT REPLACE('我來了','來','走')

執行結果如下:

1.2 LENGTH(str)

用法規則:獲取字符串的長度,使用 uft8(UNICODE 的一種變長字符編碼,又稱萬國碼)編碼字符集時,一個漢字是 3 個字節,一個數字或字母是一個字節。

SELECT LENGTH('我來了'),LENGTH('you')

執行結果如下:

1.3 SUBSTRING_INDEX(str,delim,count)

用法規則:substring_index(“待截取有用部分的字符串”,“截取數據依據的字符”,截取字符的位置N(截取數據依據的字符出現的次數))

如果count是正數則從左往右截取,如果count是負數則從右往左截取,count是從1開始的不存在0,否則查詢結果為空;

SELECT SUBSTRING_INDEX('我,是,菜,雞',',',1)--以第一個逗號為分割,截取第一個字符串

執行結果如下:

SELECT SUBSTRING_INDEX('我,是,菜,雞',',',2)--以第二個逗號為分割,截取前兩個字符串

執行結果如下:

SELECT SUBSTRING_INDEX('我,是,菜,雞',',',-2)-- 從右往左數第二個逗號為分割,截取兩個字符串

執行結果如下:

案例:

現有一張table1表,表中信息如截圖,需要將表中的roles字段中的值按照‘,’分割,并且每個字符串展示為1行:

實現的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 );

執行結果:

案例語句分析:

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位置函數必須是從1開始,所以需要(b.help_topic_id + 1)從1開始循環,當help_topic_id 值為0時以上語句取值為第一個字符串,當help_topic_id 值為1是以上語句執行后取第二個字符串,如截圖:

以下sql字段執行結果求的是roles的值可以按照 ' , ' 被分割為多少個字符串:

(LENGTH(a.roles) - LENGTH(REPLACE(a.roles,',','')) + 1 )

執行后的結果如截圖:

至于如何使用join進行循環的這里就不多做描述,可以百度下join的使用講解^-^。。。。。。。

總結

以上是生活随笔為你收集整理的mysql 固定符号分列显示_MySql中指定符号分割并分行展示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。