在 MySQL 中,可以使用 LOCATE()
函数来实现类似于 SQL Server 中 CHARINDEX()
的功能
LOCATE(substr, str)
函数返回子字符串 substr
在字符串 str
中首次出现的位置。如果未找到子字符串,则返回 0。
以下是一个示例:
SELECT LOCATE('world', 'Hello, world!'); -- 返回 8
此查询将返回值 8,因为子字符串 “world” 在字符串 “Hello, world!” 中首次出现的位置是从第 8 个字符开始的。
请注意,位置索引从 1 开始,而不是从 0 开始。
如果要实现类似于 SQL Server 中 CHARINDEX(substr, str, start_position)
的功能,可以使用 LOCATE(substr, str, start_position)
函数。例如:
SELECT LOCATE('world', 'Hello, world, welcome to the world!', 9); -- 返回 27
此查询将返回值 27,因为子字符串 “world” 在字符串 “Hello, world, welcome to the world!” 中第二次出现的位置是从第 27 个字符开始的。