mysql的宝藏函数,find_in_set

今天开发项目时,有个需求,了解了一个实用的函数,做个记录,希望对你有帮助

在这里插入图片描述

这是我们的一个后台用户表,业务逻辑是,用户需要指定多个上级,之前的同事加了leader_ids字段存储上级ID,
在开发项目过程中,需要用到用户之间的上下级关系时,突然发现有点懵逼了,习惯了json格式存储用户ID,
一时半会没反应过来怎么查询才好,好在网上找到了一个答案,发现了这个宝藏函数find_in_set(贴上代码):

//is_check 1 代表查看所有人
$check_user = User::get(['username', 'name'])->toArray();
if ($is_check != 1) { //只能查看自己的下级用户
      $check_user = User::whereRaw('FIND_IN_SET(?,leader_ids)', $this->id)->
      orwhere('id', $this->id)->get()->toArray();
}
这里我的逻辑是,除管理员外,用户只能看到自己下级用户数据,所以我就通过当前登录的用户ID,
查出他的所有下级用户,来进行接进来的功能开发。这里用的laravel 9.0 ,查找了一下文档,可以这样使用
whereRaw('FIND_IN_SET(?,leader_ids)', 需要查找的ID),其他框架,可能具体查看相应文档使用。
虽然不是很复杂,但是也想着记录一下,万一也有人遇到这个问题了呢,希望能帮助到你。
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大力水手z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值