Mysql 查询以逗号(,)分割的字符串,精确查找和模糊查询

这篇具有很好参考价值的文章主要介绍了Mysql 查询以逗号(,)分割的字符串,精确查找和模糊查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

测试示例

1、测试数据库表结构
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test`  (
  `id` bigint(20) NOT NULL COMMENT '主键id',
  `ancestors` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '组织层级',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

2、测试数据
INSERT INTO `test` VALUES (1, '0,1,2,3');
INSERT INTO `test` VALUES (2, '0,2,4,5,6');
INSERT INTO `test` VALUES (3, '11,33,6,22');
INSERT INTO `test` VALUES (4, '0,1,2,3,4,5,6,7,8,9,11');
INSERT INTO `test` VALUES (5, '2,3,4,5,6,7');
INSERT INTO `test` VALUES (6, '1,22,66,16,36');
INSERT INTO `test` VALUES (7, '46,12,32,18');
INSERT INTO `test` VALUES (8, '77,76,75,74');

SET FOREIGN_KEY_CHECKS = 1;

需求描述

数据库有一个字段ancestors存储着部门父级id,每,用逗号分隔符隔开。比如:ancestors:“0,1,2,3,4,5,6,7,8,11,12,9,10,13"”,我需要查询ancestors字段中包含“2”的信息

-- 表中数据示例
select * from `test` 

结果:
mysql切割字符串后查询,MySQL,mysql,数据库,sql

使用 LIKE 模糊查询

select * from `test` where ancestors like '%8';

结果:

mysql切割字符串后查询,MySQL,mysql,数据库,sql

使用 FIND_IN_SET 函数 【推荐】

使用 FIND_IN_SET 函数能够准确查出 ancestors字段中含有 2 这项有哪些

select id,ancestors from `test` where find_in_set('2',ancestors) GROUP BY id;

结果:
mysql切割字符串后查询,MySQL,mysql,数据库,sql

使用 mysql 的正则表达式

我们在SQL中用WHERE子句搜索匹配的条件时,常用到LIKE关键字,今天来简单介绍另一种更加强大的关键字: REGEXP, 正则匹配。

select id,ancestors from `test` where ancestors REGEXP '.*2';

结果:
mysql切割字符串后查询,MySQL,mysql,数据库,sql

使用 mysql 的LOCATE 函数

这个函数,会把你查询出含有查找 “ 2 ” 的数据

select id,ancestors from `test` where LOCATE ('2',ancestors);

结果:
mysql切割字符串后查询,MySQL,mysql,数据库,sql文章来源地址https://www.toymoban.com/news/detail-680168.html

到了这里,关于Mysql 查询以逗号(,)分割的字符串,精确查找和模糊查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql获取第一个逗号前面的字符串

    字符串内容如下: 想获取,第一个逗号前面的字符串,即:统编版(2019) 需要第一获取逗号的下标位置,然后再截取字符串 获取逗号的函数使用:LOCATE 结果如下:  然后使用 left 函数截取字符串,代码如下: 结果如下: 统编版(2019)

    2024年02月13日
    浏览(43)
  • Windows BAT批处理字符串相关操作(字符串定义、分割、拼接、替换、切片、查找)

    使用 set 来定义字符串 代码说明: 将字符串Hello赋值给string1的变量 使用 %string1%%string2% 的方式完成字符串的拼接。 代码说明: 用来连接字符串的字符串,如果包含了特殊字符则需要使用 ^ 转义,并且需要使用 \\\"\\\" 括起来,特殊字符包括(但不限于): 符号 作用 @ 命令行回显

    2024年02月12日
    浏览(45)
  • 【C#】Sql Server 设置IN查询方法内的参数,固定参数、动态参数以及通过分隔含有逗号隔开的字符串转数据集

    在平时使用sql语句查询时,in查询肯定少不了,多数用于一些数据统计或者测试类。in查询并不建议放到实际常用的查询列表里。 此篇文章主要简单聊聊,in查询方法内的参数设置方式,以及通过分隔函数将含有逗号隔开的字符串转为数据集进行查询 在 SQL Server 中,你可以使

    2024年02月15日
    浏览(56)
  • java将list转为逗号隔开字符串,将逗号连接的字符串转成字符数组,​将逗号分隔的字符串转换为List​(Java逗号分隔-字符串与数组相互转换)

       参考:java将list转为逗号隔开字符串_51CTO博客_list转字符串逗号隔开 Java将字符串转化为数组_java 字符串转数组-CSDN博客  Java逗号分隔-字符串与数组相互转换-CSDN博客  

    2024年02月08日
    浏览(68)
  • 探索 MySQL 中的字符串分割技巧与窍门

    在MySQL中,字符串分割是一个常见的操作,用于将一个包含多个子字符串的大字符串拆分成多个部分。以下是几种常见的在MySQL中进行字符串分割的方法: SUBSTRING_INDEX函数 : 这个函数可以用来从一个字符串中按照指定的分隔符提取子字符串。它的语法如下: str :要分割的字

    2024年02月06日
    浏览(49)
  • 【问题解决】mysql 数据库字符串分割之后多行输出方法

    项目需要从一张表查询出来数据插入到另一张表,其中有一个字段是用逗号分隔的字符串,需要多行输入到另一张表,那么这个如何实现呢 下面先粘贴下sql语句: 参数解释 1.SUBSTRING_INDEX(str, delimiter, count)     参数解释     str :必填。STRING类型。待截取的字符串     separat

    2024年02月14日
    浏览(47)
  • MySQL中字符串查询效率大比拼

    最近有个同事对字符串加索引,加完后,发现多了个奇奇怪怪的数字 执行的SQL如下: 这个奇怪数字就是191,它很是疑惑,也没指定索引的长度 通过查看MySQL官方文档 InnoDB has a maximum index length of 767 bytes for tables that use COMPACT or REDUNDANT row format, so for utf8mb3 or utf8mb4 columns, you ca

    2024年02月07日
    浏览(85)
  • java将list转为逗号隔开字符串

    通过StringUtils的join函数直接获取逗号隔开字符串 最近用到很多字符串拼接的场景,自己做一点梳理和记录,方便使用的时候获取。 1、将listString转为逗号隔开字符串 1)只要不为空,就在后面添加逗号,最后再用subString()函数截取,去掉最后一位的逗号  ListString test = new

    2024年02月09日
    浏览(48)
  • 按分隔符分割字符串(DB2/mysql/hive/Oracle)

    1、DB2 --substr+locate/instr DB2没有自己按分隔符分割字符串的函数,只能结合使用 或者在DB2里还可以自己写一个split分割字符串的函数 附:instr函数用法--用来查找指定字符在字符串中出现的位置 DB2中的locate 函数可实现同样的功能,用法同 instr ,只是源字符串和目标字符串的位

    2024年02月13日
    浏览(55)
  • Java获取字符串中逗号前的内容

    可以使用Java的 indexOf 和 substring 方法来获取字符串中逗号前的内容。 首先,使用 indexOf 方法找到逗号在字符串中的位置,然后使用 substring 方法截取字符串中从开头到逗号位置之前的内容。 例如,假设你有一个字符串 str ,它的值为 \\\"apple,banana,orange\\\",要获取逗号前的内容(也

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包