2020 8 14 mysql高階 行轉列問題

2021-10-09 05:02:30 字數 2054 閱讀 2566

舉例:表a

結果:

1.字串分隔函式:substring_index(str, delim, count)

str     需要拆分的字串

delim    分隔符,通過某字元進行拆分

count    當 count 為正數,取第 n 個分隔符之前的所有字元; 當 count 為負數,取倒數第 n 個分隔符之後的所有字元。

舉例: 取第2個分隔符之前的所有字元

2.替換函式replace( str, from_str, to_str)

引數名   解釋

str      需要進行替換的字串

from_str   需要被替換的字串

to_str     替換後的字串

舉例:

3.help_topic:一般為系統表,輕易不要修改,那麼可以自己新建乙個表,help_index,裡面就乙個欄位help_index_id,只要保證這個表裡面有較多資料,就可以了.

-- where條件的含義是求出有多少列

help_topic_id < length(

'7654,7698,7782,7788')-

length(

replace

('7654,7698,7782,7788'

,',',''

))+1

-- 條件

substring_index(

'7654,7698,7782,7788'

,','

,help_topic_id+1)

-- 當 help_topic_id = 0時,獲取到的字串 = 7654

-- 當 help_topic_id = 1時,獲取到的字串 = 7654,7698

-- 如下圖: 兩次迴圈自然就去掉了所有字元

mysql行 《Mysql 行模式》

一 總結 預設的行格式定義 innodb default row format 檢視當前資料表行格式 show table status table 建立表指定行格式 create table table row format dynamic 修改錶行格式 alter table table row...

mysql行格式 MySQL 行格式

以 mysql 預設的儲存引擎 innodb 為例 innodb 包含以下四種行格式 compact redundant dynamic compressed 指定行格式 create table 表名 列的資訊 row format 行格式名稱 alter table 表名 row format ...

MySQL高階高階

1 mysql的開窗函式 row number 從 1 開始,按照順序生成組內的記錄編號 rank 從 1 開始,按照順序,相同會重複,名次會留下空的位置,生成組內的記錄編號 dense rank 從 1 開始,按照順序生成組內的記錄編號,相同會重複,名次不會留下空的位置 開窗函式區別如下圖所示 f...