定義 LOCATE 查找一個子串在另一個字元串是否存在 語法 網上各種文章都說有兩種語法,其實只不過第三個參數可選,且預設為1而已,何必搞這麼複雜。 翻看了一下手冊,12.7小節里確實也是兩種,不知道為什麼。 返回 substr 在 str 從 pos 開始第一次出現的位置,索引從1開始,不存在則返 ...
定義
LOCATE - 查找一個子串在另一個字元串是否存在
語法
LOCATE(substr,str[,pos])
網上各種文章都說有兩種語法,其實只不過第三個參數可選,且預設為1而已,何必搞這麼複雜。
翻看了一下手冊,12.7小節里確實也是兩種,不知道為什麼。
返回 substr 在 str 從 pos 開始第一次出現的位置,索引從1開始,不存在則返回0.
有別於PHP函數,strpos,是從0開始,參數順序也不一致。
常用於where條件中,因為存在則返回大於0的值,不存在返回0,不用考慮存在而返回0的情況(PHP中strpos是需要的),反而比較簡單,示例如下
示例
update site set url =concat('http://',url) where locate('http://',url)=0;
mysql> SELECT LOCATE('bar', 'foobarbar');
-> 4
mysql> SELECT LOCATE('xbar', 'foobar');
-> 0
mysql> SELECT LOCATE('bar', 'foobarbar', 5);
-> 7