在 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 个字符开始的。