数据库中存储以【,】分隔的字符串,精确查找某个数据

举报
武图南 发表于 2022/06/28 17:59:34 2022/06/28
【摘要】 mysql中find_in_set()函数

概览

select find_in_set(4,'1,2,3,4');
// 返回的值为以逗号分隔后集合中 4 字符所在集合索引位置

概述

// FIND_IN_SET(str,strlist)
// str 要查询的字符串
// strlist 一般为字段名,或者一个以,分隔的字符串
// 如果 strlist 中包含 str的结果,则返回 str 位于 strlist的位置,不包含则 返回 0

实操

1.创建测试表

create table `t_test_find_in_set`(
  `id` int(8) NOT NULL auto_increment,
  `desc` varchar(255) NOT NULL,
  `strlist` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
)comment '测试find_in_set函数';
INSERT INTO `t_test_find_in_set` VALUES (1, 'desc1', 'zhangsan,lisi,wangwu');
INSERT INTO `t_test_find_in_set` VALUES (2, 'desc2', 'wangwu,maliu,zhangqi');
INSERT INTO `t_test_find_in_set` VALUES (3, 'desc3', 'yangyang,doudou,huahua');

2.使用find_in_set函数

select * from `t_test_find_in_set` where find_in_set('zhangsan',strlist);

image.png

select * from `t_test_find_in_set` where find_in_set('wangwu',strlist);

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。