MySQL
MySQL
SELECT LOCATE('lo', 'hello'); -- 3(子串在前)
SELECT INSTR('hello', 'lo'); -- 3(子串在后)
SELECT LOCATE('l', 'hello', 5); -- 0(从位置 5 起找)PostgreSQL
PostgreSQL
SELECT strpos('hello', 'lo'); -- 3
SELECT position('lo' in 'hello'); -- 3| MySQL | LOCATE(sub, str[, pos]) / INSTR(str, sub) / POSITION(sub IN str) |
|---|---|
| PostgreSQL | strpos(str, sub) / position(sub in str) |
| 未命中 | 都返回 0(注意不是 NULL) |
MySQL 的定位函数受排序规则影响:_ci 排序下 LOCATE('A','abc') 返回 1;PostgreSQL 始终区分大小写。