目录
1.MySQL
1.1LOCATE
MySQL中的字符串位置查询可以使用LOCATE函数来实现。
语法:LOCATE(substr,str [,pos])
其中
- substr是要查找的子串,
- str是被查找的字符串,
- pos表示开始查找的位置。
如果省略pos参数,则默认从字符串的第1个字符开始查找,LOCATE函数返回子串在字符串中的起始位置,如果找不到子串,则返回0。
实例:
SELECT LOCATE('RL','WORLD',2) as POS
结果:
3
1.2INSTR
MySQL还提供了另一个函数INSTR来进行字符串位置查询。
语法:INSTR(str,subtr)
其中,
- str是被查找的字符串,
- substr是要查找的子串。
与LOCATE函数类似,INSTR函数也返回子串在字符串中的起始位置,如果找不到子串,则返回0。
实例:
SELECT INSTR('Hello, world! My name is JACK', 'name') AS POS
结果:
18
2.SQLServe
2.1CHARINDEX
SQLServe中的字符串位置查询可以使用CHARINDEX函数来实现。
语法:CHARINDEX(substr,str [,pos])
其中
- substr是要查找的子串,
- str是被查找的字符串,
- pos表示开始查找的位置。
如果省略pos参数,则默认从字符串的第1个字符开始查找,CHARINDEX函数返回子串在字符串中的起始位置,如果找不到子串,则返回0。
实例:
SELECT CHARINDEX('R','WORLD',2) AS POS
结果:
3
3.ORACLE
3.1INSTR
ORACLE中的字符串位置查询可以使用INSTR函数来实现。
语法:INSTR(str, substr [, start_position [, occurrence]])
其中
-
str是要搜索的字符串,
-
substr 是你想要在str中查找的子字符串,
-
start_position是开始搜索的位置(可选,默认为1),
-
occurrence是你想要查找的子字符串的第几次出现(可选,默认为1)。
如果start_position或occurrence为负数,则搜索会从字符串的末尾开始,并从-1开始计数第N次出现。
实例:
SELECT INSTR('Hello World','e',2,1)
结果:
2
4.ClickHouse
4.1POSITION
ClickHouse中的字符串位置查询可以使用POSITION函数来实现。
语法:POSITION(str,subtr,pos)
其中substr是要查找的子串,str是被查找的字符串,pos表示开始查找的位置。如果省略pos参数,则默认从字符串的第1个字符开始查找,CHARINDEX函数返回子串在字符串中的起始位置,如果找不到子串,则返回0。
实例:
SELECT POSITION('WORLD','R',2) AS POS
结果:
3