instr和substr的用法
1.INSTR函数:
INSTR函数用于在字符串中查特定的子串,并返回它在原始字符串中的位置。
语法:
INSTR(string, substring, start_position, occurrence)
参数解释:
- string:要查的字符串。
- substring:要查的子串。
- start_position:开始查的位置,默认为1
- occurrence:要查的子串在原始字符串中的第几次出现,默认为1
示例:
字符串截取几个字符假设有一个字符串"Hello, World!",我们要查其中的子串"World"。
SELECT INSTR('Hello, World!', 'World') AS result;
输出结果为7,说明子串"World"在原始字符串中的起始位置为7
如果我们想查子串"o"在字符串"Hello, World!"中第2次出现的位置,可以使用以下语句:
SELECT INSTR('Hello, World!', 'o', 1, 2) AS result;
输出结果为8,说明第2个"o"在原始字符串中的起始位置为8
2.SUBSTR函数:
SUBSTR函数用于从字符串中提取特定的子串,并返回它。
语法:
SUBSTR(string, start_position, length)
参数解释:
- string:要提取子串的字符串。
- start_position:开始提取的位置,默认为1
- length:要提取的子串的长度,默认为截取到字符串的末尾。
示例:
假设有一个字符串"Hello, World!",我们要提取其中的子串"World"。
SELECT SUBSTR('Hello, World!', 8) AS result;
输出结果为"World",说明从原始字符串的第8个字符开始,提取到字符串的末尾。
如果我们只想提取字符串"Hello",可以使用以下语句:
SELECT SUBSTR('Hello, World!', 1, 5) AS result;
输出结果为"Hello",说明从原始字符串的第1个字符开始,提取5个字符。
INSTR和SUBSTR函数可以结合使用,以实现更复杂的字符串操作。
示例:
假设有一个表employees,其中有一个列full_name存储着员工的全名。我们想要将full_name列的姓提取出来。
SELECT SUBSTR(full_name, 1, INSTR(full_name, ' ') - 1) AS last_name
FROM employees;
上述语句中,我们首先使用INSTR函数查空格字符在full_name中的位置,然后使用SUBSTR函数从full_name的第1个字符开始提取到第一个空格字符之前的子串,即为姓。
INSTR和SUBSTR函数对于处理字符串非常有用,尤其在需要对字符串进行分解和分析的情况下。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。