LOCATE() 定义和用法,LOCATE() 函数返回字符串中第一次出现的子字符串的位置,如果在原始字符串中找不到子字符串,则此函数返回0,此函数执行不区分大小写的搜索,注意:此功能等于POSITION()函数。
语法一
LOCATE(substr,str)
返回字符串 substr 中第一次出现子字符串的位置 str。
语法二
LOCATE(substr,str,pos)
返回字符串 substr 中第一个出现子 字符串的 str 位置,从位置开始 pos,0 如果 substr 不在,则返回 str,返回 NULL 如果 substr 或者 str 是 NULL。
举个栗子
mysql> SELECT LOCATE('bar', 'foobarbar'); -> 4 mysql> SELECT LOCATE('xbar', 'foobar'); -> 0 mysql> SELECT LOCATE('bar', 'foobarbar', 5); -> 7
简单案例
比如我们需要在以下 user表 用 sql 查找所有“department”字段中有“行政部”的用户,该如何充分的使用 locate() 函数呢??
id | user_name | department |
1 | 彧繎 | 财务部,运营部,推广部 |
2 | 老超 | 行政部,后勤部,美工部 |
3 | 阿杰 | 行政部,运营部,开发部 |
4 | 小胡静 | 行政部,电商部,财务部 |
当然方法很简单,如下所示:
select * from users where locate('行政部',department);
拓展案例
判断 site 表中的 url 是否包含 'http://' 子串,如果不包含则拼接在 url 字符串开头,具体使用方法如下:
update site set url = concat('http://',url) where locate('http://',url) = 0;
要注意的是 MySQL 中字符串的拼接不能使用加号 +,用 concat 函数来代替 + 的使用。
最后修改时间:
MySQL 删除清空数据表命令的三种方法
上一篇
2022年01月27日 23:37
《基督山伯爵之华丽的复仇》中文字幕 全集下载
下一篇
2022年01月27日 23:49
相关文章
发表评论
评论列表