在MySQL中,分割字符串是一項極為常見的操作。分割字符串的方式有很多種,下面介紹幾種常用的方法。
1. 使用SUBSTRING_INDEX函數
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', 1); -- 返回apple
第一個參數為要進行分割的字符串,第二個參數為指定的分割符,第三個參數為返回第幾個子串。如果想要獲取剩下的子串,則將第三個參數設置為-1。
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', -1); -- 返回orange
2. 使用REGEXP_SUBSTR函數
SELECT REGEXP_SUBSTR('apple,banana,orange', '[^,]+', 1, 1); -- 返回apple
第一個參數為要進行分割的字符串,第二個參數為正則表達式,表示要匹配的模式,第三個參數為要返回第幾個匹配的子串,第四個參數為指定搜索起點。如果想要獲取剩下的子串,則將第三個參數設置為2,第四個參數設置為2。
SELECT REGEXP_SUBSTR('apple,banana,orange', '[^,]+', 1, 2); -- 返回banana SELECT REGEXP_SUBSTR('apple,banana,orange', '[^,]+', 2, 2); -- 返回orange
3. 使用FIND_IN_SET函數
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', FIND_IN_SET('banana', 'apple,banana,orange')); -- 返回banana
FIND_IN_SET函數返回一個字符串在一個逗號分隔的字符串列表中的位置。利用SUBSTRING_INDEX函數,可以根據位置來截取子串。
上一篇mysql中分號