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 字串。
範例:

語法解析