Mysql函数INSTR、LOCATE、POSITION VS LIKE |
您所在的位置:网站首页 › MySQL中instr函数 › Mysql函数INSTR、LOCATE、POSITION VS LIKE |
转自:http://hi.baidu.com/xploong/item/2d04de3ee5be3b8bf4e4ad2f
Mysql 大家都会用这样的語法: SELECT `column` FROM `table` where `condition` like `%keyword%’ 事实上,可以使用 locate 和 instr 这两个函数来代替 SELECT `column` from `table` where locate(‘keyword’, `condition`)>0 或是 locate 的別名 position SELECT `column` from `table` where position(‘keyword’ IN `condition`) 或是 SELECT `column` from `table` where instr(`condition`, ‘keyword’ )>0 locate、position 和 instr 的差別只是参数的位置不同,同时locate 多一个请始位置的参数外,两者是一样的。 速度上这三个比用 like 稍快了一點。 另付三个函数的说明: INSTR(str,substr)返回字符串 str 中子字符串的第一个出现位置。这和LOCATE()的双参数形式相同,只是参数的顺序被颠倒。 mysql> SELECT INSTR(‘foobarbar’, ‘bar’); -> 4 mysql> SELECT INSTR(‘xbar’, ‘foobar’); -> 0 这个函数支持多字节字元,并且只有当至少有一个参数是二进制字符串时区分大小写。 LOCATE(substr,str) , LOCATE(substr,str,pos)第一个语法返回字符串 str中子字符串substr的第一个出现位置。第二个语法返回字符串str中子字符串substr的第一个出现位置, 起始位置在pos。如若substr 不在str中,则返回值为0。 mysql> SELECT LOCATE(‘bar’, ‘foobarbar’); -> 4 mysql> SELECT LOCATE(‘xbar’, ‘foobar’); -> 0 mysql> SELECT LOCATE(‘bar’, ‘foobarbar’,5); -> 7 这个函数支持多字节字元,并且只有当至少有一个参数是二进制字符串时区分大小写。 POSITION(substr IN str)POSITION(substr IN str)是 LOCATE(substr,str)同义词。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |