2010-11-02 62 views
2

我目前正在MYSQL中的一個函數,我有一個從另一個表逗號分隔的字符串(1,22,344,55),我怎樣才能將這在MYSQL中拆分爲數組(NOT temp_table)。另外,是否有類似的功能在MYSQL我可以做foreach()?的foreach數組數據類型,拆分字符串,

回答

10

MySQL不包括功能拆分分隔的字符串。但是,創建自己的功能非常簡單。

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, ''); 

使用

SELECT SPLIT_STR(string, delimiter, position) 

從這裏: http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/

0

在MySQL中,正確的用法是:

SELECT FIND_IN_SET('b','a,b,c,d'); 

給出的結果是:2