zoukankan      html  css  js  c++  java
  • TP5 查询mysql数据库时的find_in_set用法

    $where['class_id'] = ['in', '$cid_all'];
    $where['id'] = ['in', $all_user_id];//或这样子
    $where['title'] = ['like', '%php%'];
    $where['id'] = ['<>', $id];
    $where['id'] = ['notin', $all_user_id];//不等于
    与find_in_set()相反的函数可以用!find_in_set()
    //值为数字
    $id=419;
    $where[] = ['exp',Db::raw("FIND_IN_SET($id,category)")];//category值为数字,例子:419,415,414
    //值为字符串
    $id值等于dfd 要注意'引号
    $where[] = ['exp',Db::raw("FIND_IN_SET('$id',category)")];//category值为数字,例子:'349/417/419','349/413/415','349/413/416'
    Db::name('menu')->where('FIND_IN_SET(:id,pid_all)',['id' => $id])->update([$field => $title]);

    type 字段在数据库是以 1,2,3 形式存在 已说到FIND_IN_SET函数的使用

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

    Db::table('think_user')
        ->where('find_in_set(1,sids)')
        ->select();::table('think_user')
        ->where('find_in_set(1,sids)')
        ->select();

    为了安全起见,我们可以对字符串查询条件使用参数绑定,例如:

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

    自己的实例:

    $gonggaolist = Db::table("fa_cms_archives")
                ->alias('a')
                ->join("fa_cms_channel w","a.channel_id=w.id")
                ->where("w.parent_id=20 and a.status='normal'")
                ->where("FIND_IN_SET('recommend',a.flag)")
                ->order("a.id desc")
                ->field("a.id,a.channel_id,a.title,a.likes,a.image,w.diyname,a.updatetime,a.flag")
                ->limit("4")
                ->select();
            dump($gonggaolist);

    效果图

  • 相关阅读:
    Tensorflow 学习
    几种常见损失函数
    两人比赛先选后选谁获胜系列的动态规划问题
    LeetCode 全解(bug free 训练)
    局部敏感哈希LSH
    Annoy解析
    MCMC例子
    TinyBERT简单note
    ALBERT简单note
    求根号2, 网易的一道面试题
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/11022713.html
Copyright © 2011-2022 走看看