LOCATE vs INSTR

时间:2017-07-20 14:44:22

标签: mysql

    SELECT INSTR('1234','2')  #returns 2
    SELECT LOCATE('2','1234') #returns 2

除了参数编号之外,在选择任何一个函数之前还有任何重要的区别吗?

2 个答案:

答案 0 :(得分:7)

INSTR()功能从 第一个字符 开始搜索。

LOCATE()函数有 第三个​​参数 ,可让您更改起始位置。

-- returns 4
SELECT INSTR("Alibaba", "ba")

-- returns 4 because the third parameter was not specified
SELECT LOCATE("ba", "Alibaba")

-- returns 6
SELECT LOCATE("ba", "Alibaba", 5)

答案 1 :(得分:2)

<强>找到

LOCATE()函数返回字符串中第一次出现子字符串的位置。

<强> INSTR

INSTR()函数返回第一次出现在另一个字符串中的字符串的位置。

例如

SELECT LOCATE("H", "PHP") AS MatchPosition;`
-- -> returns 2
SELECT INSTR("PHP", "H") AS MatchPosition;
-- -> returns 2

表现

-- 5.074 sec
SELECT BENCHMARK(100000000,INSTR('foobar','foo'));

-- 5.086 sec
SELECT BENCHMARK(100000000,LOCATE('foo','foobar'));