weixin_46751464 2022-09-11 01:14 采纳率: 100%
浏览 12
已结题

这种字符串查询如何搞

php thinkphp5.1
查询条件是 tid=1
数据库中tid的值是(1,2,3,4)

这种查询如何搞

  • 写回答

2条回答 默认 最新

  • yangweijie 2022-09-12 09:30
    关注

    对于一些实在复杂的查询,比如FIND_IN_SET也可以直接使用原生SQL语句进行查询,例如:

    Db::table('think_user')
    ->where('find_in_set(1, tid)')
    ->select();
    为了安全起见,我们可以对字符串查询条件使用参数绑定,例如:

    Db::table('think_user')
    ->where('find_in_set(:id,sids)',['id'=>$id])
    ->select();

    其他解决方案:

    在thinkphp5中使用mysql find_in_set语法时,可以使用EXP(表达式查询)来实现,具体代码如下:

    $data = Db::table('students')->where('exp','FIND_IN_SET(1, tid)')->select();
    如果用数组条件查询形式的话,那么像下面这么写查询条件即可:

    $where[]=['exp','FIND_IN_SET(2, tid)'];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 9月11日

悬赏问题

  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)