2016年4月8日 星期五

對mysql的欄位進行split的方法

先宣告原文出處:http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/
我在網路上找到一篇,先建立一個function,然後就可以使用該function達到目的了!
再搭配CONVERT使用就可以把分離出來的字串轉成數字避免排序不如預期的情況了~
例如:CONVERT(SPLIT_STR(week,'-',1),UNSIGNED INTEGER)
以下是function的寫法以及用法
Function
CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');
Usage
SELECT SPLIT_STR(string, delimiter, position)
Example
SELECT SPLIT_STR('a|bb|ccc|dd', '|', 3) as third;

+-------+
| third |
+-------+
| ccc   |
+-------+
最後順帶一提,在mysql中建立的function會跑到哪邊呢?
會在database: mysql     table: proc裡面!