Mysql:FIND_IN_SET 函数在逗号分隔的列表中搜索指定的值

FIND_IN_SET 函数用于在逗号分隔的列表中搜索指定的值。

语法: FIND_IN_SET(str,strlist),其中 str是要查找的值, strlist是逗号分隔的列表。函数返回值是 str在 strlist中的位置,位置从1开始,如果找不到则返回0

SELECT FIND_IN_SET('blue', 'red,blue,green,yellow') AS position

查询部门表:对部门表中ancestors列数据进行过滤查找,含有33的数据

方式一:通过find_in_set函数

方式二:通过like查询,和上述结果一致

select * from dept where ancestors like '%33%'

两者之间的区别:

 FIND_IN_SET 函数用于在逗号分隔的列表中搜索指定的值,根据逗号分割完全匹配才行,如果33匹配列表(334,32,33 )只会匹配到第3个不会匹配第1个

LIKE 用于检查列中是否包含特定字符 like '%字段%' 会匹配包含字段的数据,不会根据逗号或其他字符的影响

mybatisplus中可以使用LambdaQueryWrapper 实现查询

LambdaQueryWrapper<Dept> queryWrapper = new LambdaQueryWrapper();
queryWrapper.apply("find_in_set({0},ancestors)",deptId);//{0} 是占位符,deptId要匹配的数据
List<Dept> dept= super.list(queryWrapper);

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 05:32:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 05:32:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 05:32:02       58 阅读
  4. Python语言-面向对象

    2024-07-13 05:32:02       69 阅读

热门阅读

  1. Xcode多任务处理指南:释放iOS应用的并发潜能

    2024-07-13 05:32:02       21 阅读
  2. 力扣题解( 最长定差子序列)

    2024-07-13 05:32:02       26 阅读
  3. npm和yarn清理缓存命令

    2024-07-13 05:32:02       21 阅读
  4. C/C++服务器基础(网络、协议、数据库)

    2024-07-13 05:32:02       23 阅读
  5. React@16.x(55)Redux@4.x(4)- store

    2024-07-13 05:32:02       23 阅读
  6. Reactor 模式

    2024-07-13 05:32:02       23 阅读
  7. python 端口的转发

    2024-07-13 05:32:02       32 阅读
  8. 软设之迭代器模式

    2024-07-13 05:32:02       23 阅读