ThinkPhp8 框架使用 mysql find_in_set 函数

前言:

使用mysql 存储一些标签时 会使用逗号拼接的存储方法 比如 1,2,3,11

一般情况下 查询 1  可能会用到 like %1% 但这样查询的不够准确 因为11也会被查询到

如果每次都多一个逗号 1,2,3,11,  查询时 like %1,% 这样存储有点不太符合程序设计

解决方案

----------- 官网解释 --------------

FIND_IN_SET(str,strlist)

如果字符串 str 位于由 N 个子字符串组成的字符串列表 strlist 中,则返回 1 到 N 之间的值。字符串列表是一个 字符串由由字符分隔的子字符串组成。如果第一个参数是 常量字符串,第二个是 SET 类型的列,FIND_IN_SET() 函数为 优化为使用位算术。如果 str 不在 strlist 中,或者 strlist 是空字符串,则返回。 如果任一参数为 。此功能无法正常工作 如果第一个参数包含逗号 () 字符。,0NULLNULL,

----------- end --------------

mysql 有自己的解决方法   find_in_set  

mysql where里可以直接用

where FIND_IN_SET(3, tags)

thinkphp8, thinkphp6 框架里的用法是这样的

$obj->whereRaw(' find_in_set (:param, tags)', ['param' => $param]);

相关推荐

  1. 如何使用ThinkPHP框架thinkphp8.0)创建定时任务?

    2024-04-09 00:14:01       33 阅读
  2. Thinkphp 5框架学习

    2024-04-09 00:14:01       45 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 00:14:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 00:14:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 00:14:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 00:14:01       18 阅读

热门阅读

  1. 前端开发教程

    2024-04-09 00:14:01       16 阅读
  2. SpringBoot实现增删改查

    2024-04-09 00:14:01       12 阅读
  3. 复试专业课问题

    2024-04-09 00:14:01       13 阅读
  4. css外边距合并和BFC

    2024-04-09 00:14:01       12 阅读
  5. Leetcode 8. 字符串转换整数 (atoi)

    2024-04-09 00:14:01       13 阅读
  6. 蓝桥杯嵌入式之模块驱动

    2024-04-09 00:14:01       14 阅读
  7. 线程同步的四项原则

    2024-04-09 00:14:01       11 阅读
  8. 解决Redission的RList查询list数据过慢的问题

    2024-04-09 00:14:01       14 阅读
  9. 自动导入和注册在当前目录下的所有自定义指令

    2024-04-09 00:14:01       11 阅读
  10. meshgrid如何生成网格

    2024-04-09 00:14:01       10 阅读
  11. Python 描述符

    2024-04-09 00:14:01       13 阅读