随笔 - 832  文章 - 2  评论 - 31  阅读 - 167万

MySQL中LOCATE()函数的详解

①.LOCATE(字符串1,字符串2)         

返回字符串1在字符串2中第一次出现的位置,只要字符串2中包含字符串1,那么返回值必然大于0。

 

 ②.LOCATE(字符串1,字符串2,pos)

返回字符串1在字符串2中第一次出现的位置,从位置pos开始算起;

如果返回0,表示从pos位置开始之后没有了

如果返回值 大于0,表示有

 

 

 

 

使用案例:

现在有一张user表,如下:

iduser_nameemails
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函数;




posted on   小破孩楼主  阅读(986)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示