INSTR(str,substr)
返回字符串str串中substr子串第一个出现的位置。如果没有则返回0;
这与LOCATE()的双参数形式是一样的,不同的是参数的顺序是相反的。
mysql> SELECT INSTR('foobarbar', 'bar');
+---------------------------------------------------------+
| INSTR('foobarbar', 'bar') |
+---------------------------------------------------------+
| 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
LOCATE(substr,str) , LOCATE(substr,str,pos)
第一个语法返回字符串 str中子字符串substr的第一个出现位置。第二个语法返回字符串str中子字符串substr的第一个出现位置, 起始位置在pos。如若substr 不在str中,则返回值为0。
mysql> SELECT LOCATE('bar','foobarbar');
+---------------------------------------------------------+
| LOCATE('bar','foobarbar') |
+---------------------------------------------------------+
| 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT LOCATE('bar','foobarbar',5);
+---------------------------------------------------------+
| LOCATE('bar','foobarbar',5) |
+---------------------------------------------------------+
| 7 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
这个函数支持多字节字元,并且只有当至少有一个参数是二进制字符串时区分大小写。
POSITION(substr IN str)
POSITION(substr IN str)是 LOCATE(substr,str)同义词。