type
status
date
slug
summary
tags
category
icon
password
目的
有以下 table 紀錄每個文章包含的關鍵字,其中
tags
是一個字串用逗號 ,
分隔多個關鍵字的欄位希望可以將關鍵字從
tag
中分離出來,呈現如下結果:實現方式
首先我們需要建立一張表,或者是找到一張表其中有一個欄位是
有順序
且中間沒有空洞
的流水號
,透過這樣的方式來達到遍歷 tags
的次數 接下來就可以用以下的語法來實現拉!
原理
SUBSTRING_INDEX(str,delim,count)
- str:需要拆分的字串。
- delim:分隔字符,透過此字符拆分字串。
- count:當 count 為正數時,取得第 N 個 delim 分隔字符之前的所有字符;當 count 為負數時,取得倒數第 N 個 delim 分隔字符之後的所有字符。
範例:
從上述例子中可以看到如果只是單純的取得第一個和最後一個字符是很簡單的,可是如果我要的是中間的字符呢?讓我們看一下以下例子:
可以看到如果 count = 2,我會同時取得以
,
分隔的第一個字符 陽岱鋼
加第二個字符 棒球
,所以這時候就需要再加一層 SUBSTRING_INDEX(,,-1)
才能達到取得第二個字符 棒球
的效果,如下例子:CHAR_LENGTH(str)
返回 str 字串的字符數量。
範例:
REPLACE(str,from_str,to_str)
將 str 字串內的 from_str 字符改為 to_str 字串。
範例: