MySQL字符串函數:locate()使用方法詳解

定義

LOCATE - 查找一個子串在另外一個字符串是否存在mysql

語法

LOCATE(substr,str[,pos])

網上各類文章都說有兩種語法,其實只不過第三個參數可選,且默認爲1而已,何須搞這麼複雜。
翻看了一下手冊,12.7小節裏確實也是兩種,不知道爲何。sql

返回 substr 在 str 從 pos 開始第一次出現的位置,索引從1開始,不存在則返回0.
有別於PHP函數,strpos,是從0開始,參數順序也不一致。函數

經常使用於where條件中,由於存在則返回大於0的值,不存在返回0,不用考慮存在而返回0的狀況(PHP中strpos是須要的),反而比較簡單,示例以下url

示例

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
相關文章
相關標籤/搜索