首页 > 数据库 > SQL > 正文

mysql中instr()函数的使用

冷炫風刃
发布: 2025-10-22 11:45:01
原创
583人浏览过
INSTR()函数用于查找子串在主串中的起始位置,返回值从1开始,未找到返回0。例如INSTR('hello world', 'world')返回7;若查找不存在的字符串如'mysql'则返回0;可用于字段筛选,如SELECT email, INSTR(email, 'gmail') AS pos FROM users WHERE INSTR(email, 'gmail') > 0,找出含'gmail'的邮箱并显示位置;该函数默认区分大小写,但受排序规则影响;与LOCATE()功能相似,INSTR(str, substr)等价于LOCATE(substr, str),而LOCATE支持第三个参数指定起始搜索位置;常用于判断字段是否包含关键词、实现类似LIKE的模糊匹配,或结合SUBSTR提取子串,如SUBSTR(email, INSTR(email, '@') + 1)提取域名。

mysql中instr()函数的使用

在MySQL中,INSTR() 函数用于查找一个字符串在另一个字符串中首次出现的位置。如果找到,返回其起始位置(从1开始);如果未找到,返回0。这个函数非常适用于模糊匹配或判断某个子串是否存在于主串中。

基本语法

INSTR(str, substr)

  • str:被搜索的主字符串
  • substr:要查找的子字符串

返回值为整数,表示子串在主串中的起始位置,索引从1开始。

常见用法示例

下面是一些常见的使用场景和SQL示例:

1. 基本查找

SELECT INSTR('hello world', 'world');

结果:7,因为 "world" 从第7个字符开始。

2. 查找不存在的字符串

SELECT INSTR('hello world', 'mysql');

结果:0,表示未找到。

3. 在字段中使用

SpeakingPass-打造你的专属雅思口语语料
SpeakingPass-打造你的专属雅思口语语料

使用chatGPT帮你快速备考雅思口语,提升分数

SpeakingPass-打造你的专属雅思口语语料25
查看详情 SpeakingPass-打造你的专属雅思口语语料

假设有一个用户表 users,其中有一个字段 email,你想找出邮箱中包含 "gmail" 的记录,并查看位置:

SELECT email, INSTR(email, 'gmail') AS pos FROM users WHERE INSTR(email, 'gmail') > 0;

这将返回所有邮箱包含 "gmail" 的记录,并显示其起始位置。

4. 不区分大小写?注意!

INSTR() 是区分大小写的,但如果你使用的是不区分大小写的排序规则(如 utf8_general_ci),则表现可能像不区分大小写。若要强制区分,可使用二进制比较:

SELECT INSTR('Hello World', 'hello');

在默认情况下可能返回0或1,取决于列的排序规则。

与 LOCATE() 函数的关系

INSTR() 和 LOCATE() 非常相似。实际上,INSTR(str, substr) 等价于 LOCATE(substr, str)。LOCATE() 还支持第三个参数:起始搜索位置。

SELECT LOCATE('o', 'hello world', 5);

从第5个字符之后查找 'o',结果是8。

实际应用场景

  • 判断某字段是否包含特定关键词
  • 配合 WHERE 子句实现类似 LIKE 的功能,但更灵活
  • 提取位置信息用于字符串截取(结合 SUBSTR)

例如:提取 @ 符号后的内容作为域名

SELECT email, SUBSTR(email, INSTR(email, '@') + 1) AS domain FROM users;

基本上就这些。INSTR() 虽小但很实用,尤其在条件筛选和字符串处理时非常方便。掌握它能让你的SQL更高效。

以上就是mysql中instr()函数的使用的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号