MySQL中LOCATE()函数的详解
①.LOCATE(字符串1,字符串2)
返回字符串1在字符串2中第一次出现的位置,只要字符串2中包含字符串1,那么返回值必然大于0。
②.LOCATE(字符串1,字符串2,pos)
返回字符串1在字符串2中第一次出现的位置,从位置pos开始算起;
如果返回0,表示从pos位置开始之后没有了
如果返回值 大于0,表示有
使用案例:
现在有一张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”的用户?
答案:
- select * from users where locate('aa@email.com',emails);
拓展案例:
判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头
- update site set url =concat('http://',url) where locate('http://',url)=0;
注意:mysql中字符串的拼接不能使用加号+,用concat函数;
分类:
mysql数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!