文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql中五种包含查询的方法

2023-08-20 12:11

关注

场景:数据库表字段存的是一个字符串,用“,”分隔,查询的sql需要匹配其中某一段字符串

测试的表数据如下图:
在这里插入图片描述

方法1:使用LIKE

LIKE关键字用于模糊匹配,可以在查询中使用通配符进行匹配。%表示匹配任意多个字符,_表示匹配一个字符。
SELECT * FROM test t WHERE t.is_deleted = 0 AND ((t.key LIKE "%TEST_KEY_1%") OR (t.key LIKE "%TEST_KEY_2%"))

方法2:使用INSTR

INSTR函数用于查找子字符串在父字符串中的位置,如果找到则返回对应的位置,如果没找到则返回0。其中substr参数表示要查找的子字符串,str参数表示父字符串。
SELECT * FROM test t WHERE t.is_deleted = 0 AND (INSTR(t.key,"TEST_KEY_1") OR INSTR(t.key,"TEST_KEY_2"))

方法3:使用LOCATE

LOCATE函数和INSTR函数类似,用于查找子字符串在父字符串中的位置,但可以指定从父字符串的哪个位置开始查找。如果找到则返回对应的位置,如果没找到则返回0。其中substr参数表示要查找的子字符串,str参数表示父字符串,pos参数表示从哪个位置开始查找。
SELECT * FROM test t WHERE t.is_deleted = 0 AND (LOCATE("TEST_KEY_1",t.key) OR LOCATE("TEST_KEY_2",t.key))

方法4:使用POSITION

POSITION函数和INSTR函数类似,用于查找子字符串在父字符串中的位置,如果找到则返回对应的位置,如果没找到则返回0。其中substr参数表示要查找的子字符串,str参数表示父字符串。
SELECT * FROM test t WHERE t.is_deleted = 0 AND (POSITION("TEST_KEY_1" IN t.key) OR POSITION("TEST_KEY_2" IN t.key))

这四种方法返回的结果是一样的,如下图:
在这里插入图片描述

如果想要精准匹配的话,上面四种就不适用了,可以使用方法5

方法5:使用FIND_IN_SET

FIND_IN_SET函数用于在一个逗号分隔的字符串集合中查找一个子字符串是否存在。如果存在,则返回对应的位置,如果不存在,则返回0。其中str参数表示要查找的子字符串,set参数表示用逗号分隔的字符串集合。
SELECT * FROM test t WHERE t.is_deleted = 0 AND (FIND_IN_SET("TEST_KEY_1",t.key) OR FIND_IN_SET("TEST_KEY_2",t.key))

在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_55689501/article/details/131071273

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯