MySQL 中有時需要對字符串進行拆分,而其中的一個常見需求是在拆分后截取部分字符串。以下是一些基本的拆分字符串和截取子字符串的方法。
1. 使用 SUBSTRING_INDEX 截取字符串
SELECT SUBSTRING_INDEX('a/b/c', '/', 2);
上述代碼將返回 "a/b",因為它將原始字符串 'a/b/c' 按斜杠 / 分割為三個部分:'a'、'b' 和 'c'。然后我們使用 SUBSTRING_INDEX 函數提取出前兩個部分,結果為 "a/b"。
2. 使用 FIND_IN_SET 截取字符串
SELECT SUBSTRING_INDEX('a,b,c', ',', 2);
在上面的示例中,我們可以將字符串 'a,b,c' 按逗號分隔為 'a'、'b' 和 'c'。但是,如果我們要選擇 "a,b",我們可以使用 FIND_IN_SET 函數:
SELECT SUBSTRING_INDEX('a,b,c', ',', FIND_IN_SET('b', 'a,b,c')-1);
在本例中,我們使用 FIND_IN_SET 找到字符串 'b' 的位置,然后通過將這個位置-1的結果傳遞給 SUBSTRING_INDEX 函數來提取前兩個部分 'a' 和 'b'。結果為 "a,b"。
3. 使用正則表達式截取字符串
SELECT REGEXP_SUBSTR('David started learning SQL at age 19', '[0-9]+');
使用正則表達式來截取 SQL 字符串中的數字是常見的需求。在上述示例中,我們使用 REGEXP_SUBSTR 函數提取字符串中的數字,結果為 "19"。
以上是一些基本的 mysql 分割字符串后截取子字符串的方法,開發者可以根據具體需求選擇相應的方法。