MySQL LOCATE返回位置

在MySQL中,LOCATE函数用于在一个字符串中查找一个子字符串,并返回子字符串第一次出现的位置。该函数的语法如下:
LOCATE(substr, str)
其中substr为要查找的子字符串,str为要在其中查找子字符串的字符串。
示例
假设我们有一个表t_students,包含如下数据:
| id | name |
|---|---|
| 1 | Alice Wang |
| 2 | Bob Li |
| 3 | Charlie Zhang |
| 4 | David Yang |
我们想要在name列中查找子字符串”Li”的位置。
SELECT id, name, LOCATE('Li', name) AS position
FROM t_students;
运行上述SQL语句后,我们会得到如下结果:
| id | name | position |
|---|---|---|
| 1 | Alice Wang | -1 |
| 2 | Bob Li | 5 |
| 3 | Charlie Zhang | -1 |
| 4 | David Yang | -1 |
从结果可以看出,在”Bob Li”这个名字中,子字符串”Li”出现在第5个位置。
注意事项
- 如果找不到子字符串,LOCATE函数将返回-1。
- LOCATE函数区分大小写,例如”Li”和”li”是不同的。
- 如果想不区分大小写进行查找,可以使用LOWER函数将字符串转换为小写。
SELECT id, name, LOCATE('li', LOWER(name)) AS position
FROM t_students;
总结
LOCATE函数在MySQL中常用于查找子字符串的位置,可以帮助我们进行字符串的查找和截取操作。同时,需要注意大小写和返回值-1的情况,以免出现错误。
极客笔记