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


轉自:https://www.fujieace.com/mysql/functions/locate.html

語法 一:

LOCATE(substr,str)

返回字符串substr中第一次出現子字符串的位置 str。

 

語法二:

LOCATE(substr,str,pos)

返回字符串substr中第一個出現子 字符串的 str位置,從位置開始 pos。0 如果substr不在,則 返回str。返回 NULL如果substr 或者str是NULL。

 

簡單例子:

 
  1. mysql> SELECT LOCATE('bar', 'foobarbar');
  2.         -> 4
  3. mysql> SELECT LOCATE('xbar', 'foobar');
  4.         -> 0
  5. mysql> SELECT LOCATE('bar', 'foobarbar', 5);
  6.         -> 7

 

使用案例:

現在有一張user表,如下:

id user_name emails
1 小張 a@fujieace.com,b@fujieace.com,c@fujieace.com
2 小王 aa@fujieace.com,bb@fujieace.com,cc@fujieace.com
3 李四 aa@fujieace.com,b@fujieace.com,d@fujieace.com
4 王五 aa@fujieace.com,e@fujieace.com,f@fujieace.com

 

思考:

我們如何用sql查找所有“emails”字段中有“aa@fujieace.com”的用戶?

 

答案:

 
  1. select * from users where locate('aa@email.com',emails);

 

拓展案例:

判斷site表中的url是否包含'http://'子串,如果不包含則拼接在url字符串開頭

 
  1. update site set url =concat('http://',url) where locate('http://',url)=0;

注意:mysql中字符串的拼接不能使用加號+,用concat函數;

 

mysql字符串函數:locate

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM