精华内容
下载资源
问答
  • tp3.2.3 M(‘table’)->where([‘id’=>id])->where([‘field’=>[‘notin’,条件]])->select(); tp5.* Db::name(‘table’)->where(‘id’,$id)->where(‘field’,’notin’,条件)->select...
    tp3.2.3
    M(‘table’)->where([‘id’=>id])->where([‘field’=>[‘notin’,条件]])->select();
    tp5.*
    Db::name(‘table’)->where(‘id’,$id)->where(‘field’,’notin’,条件)->select();
    Db::name(‘table’)->where(‘id’,$id)->whereNotIn(‘field’,条件)->select();
    $where['status'] = ['eq', 1];
    $where['user_id'] =['not in',$blacklist];;
    如果上边不生效,需要写成下边这样
    $where[] = ['status', 'eq', 1];
     $blacklist = db('community_black') -> where(['user_id' => $user_id])->value('group_concat(blacklist_id)');
            if($blacklist){
                $where[] = ['user_id','not in',$blacklist];
            }
    
    展开全文
  • thinkphp查询字段值为空和不为空清空 $where['name'] = ['exp', 'is null']; //为空的 $where['name'] = ['exp', 'is not null']; //不为空的

    thinkphp查询字段值为空和不为空清空

    $where['name'] = ['exp', 'is null'];  //为空的
    $where['name'] = ['exp', 'is not null']; //不为空的
    
    展开全文
  • TP5 where数组查询(有多个查询条件)Where 条件表达式格式为:$map['字段名'] = array('表达式', '操作条件');其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:...

    TP5 where数组查询(有多个查询条件)

    Where 条件表达式格式为:

    $map['字段名'] = array('表达式', '操作条件');

    其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:

    ThinkPHP运算符 与 SQL运算符 对照表

    | TP运算符 | SQL运算符 | 例子 | 实际查询条件 | | :----------: | :-------------: | :----------------------------------------------------------: | :------------------------------: | | eq | = | $map['id'] = array('eq',100); | 等效于:$map['id'] = 100; | | neq | != | $map['id'] = array('neq',100); | id != 100 | | gt | > | $map['id'] = array('gt',100); | id > 100 | | egt | >= | $map['id'] = array('egt',100); | id >= 100 | | lt | < | $map['id'] = array('lt',100); | id < 100 | | elt | <= | $map['id'] = array('elt',100); | id <= 100 | | like | like | $map = array('like','Admin%'); | username like 'Admin%' | | between | between and | $map['id'] = array('between','1,8'); | id BETWEEN 1 AND 8 | | not between | not between and | $map['id'] = array('not between','1,8'); | id NOT BETWEEN 1 AND 8 | | in | in | $map['id'] = array('in','1,5,8'); | id in(1,5,8) | | not in | not in | $map['id'] = array('not in','1,5,8'); | id not in(1,5,8) | | and(默认) | and | $map['id'] = array(array('gt',1),array('lt',10)); | (id > 1) AND (id < 10) | | or | or | $map['id'] = array(array('gt',3),array('lt',10), 'or'); | (id > 3) OR (id < 10) | | xor(异或) | xor | 两个输入中只有一个是true时,结果为true,否则为false,例子略。 | 1 xor 1 = 0 | | exp | 综合表达式 | $map['id'] = array('exp','in(1,3,8)'); | map['id'] = array('in','1,3,8'); |

    补充说明同SQL一样,ThinkPHP运算符不区分大小写,eq和EQ一样吧。

    between、in条件支持字符串或者数组,下面两种写法都有效。

    $map['id'] = array('not in','1,5,8');

    $map['id'] = array('not in',array('1','5','8'));

    exp表达式

    上表中的exp不是一个运算符,而是一个综合表达式以支持更复杂的条件设置。exp的操作条件不会被当做字符串,可以使用SQL支持的语法,包括使用函数和字段名称。exp不仅用于where条件,也可以用于数据更新。如:

    $Dao = M("Article");

    // 构建 save 的数据数组,文章点击数+1$data['id'] = 10;

    $data['counter'] = array('exp','counter+1');

    // 根据条件保存修改的数据$User->save($data);

    另外可以参考TP官网的查询表达式使用

    查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:

    where('字段名','表达式','查询条件');

    whereOr('字段名','表达式','查询条件');

    展开全文
  • TP5 Or查询的几种方法

    2020-12-20 13:15:09
    TP3中想要or查询条件可以为:$condition['grade'] = 1;$condition['class'] = 3;$condition['sex'] = 2;$condtion['_logic'] = 'OR';$list = M(‘user’)->where($condtion)->findall();然后在TP5中尝试用...

    在TP3中想要or查询

    条件可以为:

    $condition['grade'] = 1;

    $condition['class'] = 3;

    $condition['sex'] = 2;

    $condtion['_logic'] = 'OR';

    $list = M(‘user’)->where($condtion)->findall();

    然后在TP5中尝试用where去这么查询发现一直在报错,查了手册之后发现TP5取消了_logic作为查询方式,而是新增了whereOr方法,下面是TP5中查询方式

    User.php

    namespace app\index\controller;

    use app\index\model\UserModel;

    class User

    {

    public function index()

    {

    $condition['grade'] = 1;

    $condition['class'] = 3;

    $condition['sex'] = 2;

    $UserModel = new UserModel;

    $list = $UserModel->getlistwhereOr($condition);

    print_r($list);

    }

    }

    UserModel.php

    namespace app\index\model;

    use app\common\model\CommonModel;

    use think\Db;

    use think\Model;

    class UserModel extends CommonModel

    {

    public function __construct(){

    parent::__construct();

    }

    protected $name = 'User';

    public function getlistwhereOr($condition) {

    $list =Db::name($this->name)->whereOr($condition)->select();

    return $list;

    }

    }

    执行User.php 发现打印出来的数据就是我们要的筛选数据,

    总结:TP5相比TP3中更新了很多我们经常用到的查询方式,而且写法更人性化,需要经常的去整理查看这些新方法

    或者也可以用$where['custom_name|custom_phone'] = ['like', "%" . $post['keyword'] . '%'];这种方法或查询,如输入关键词模糊查找几个字段如下代码:

    $where['land_no'] = 0;

    if ($post['keyword']) {

    $where['custom_name|custom_phone'] = ['like', "%" . $post['keyword'] . '%'];

    }

    $where['custom_id'] = 0;

    $num = db('land')->where($where)->select();

    3.采用闭包方式

    tp5中采用闭包的方式:

    $map['user_id']=1;

    $map['status']=0;

    $or_map['user_id']=$map['user_id'];

    $or_map['audit']=['in',['1,2']];

    $list = Db::name('table')->where(function ($query) use ($map){

    $query->where($map);

    })->whereOr(function ($query) use ($or_map){

    $query->where($or_map);

    })->select();

    //生成的sql语句:

    //SELECT * FROM `tp_table` WHERE  (  `user_id` = '1'  AND `status` = 0 ) OR (  `user_id` = '1'  AND `audit` IN ('1,2') )

    4.普通方式

    $where = [

    'feed_uid' => [ 'eq' , 5] ,

    'status' => [ [ 'eq' , 1] , [ 'eq' , 2 ] , [ 'eq' , 3 ] , 'or' ] ,

    ];

    $value = DealSpace::where($where)->count();

    //最终的查询条件为where feed_uid=5 and (status=1 or status =2 or status =3 )

    这就是微学网-程序员之家为你提供的"TP5 Or查询的几种方法"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/14064.html

    展开全文
  • 查询数据基本查询查询一个数据使用://table方法必须指定完整的数据表名Db::table('think_user')->where('id',1)->find();注意:需要引入命名空间 usethink\Db;find 方法查询结果不存在,返回 null查询数据集...
  • 很简单,改一下field即可。 $result=Db::name('clock')->where('stu_id',$stu_id) ->where('class_id',$class['class_id'])->join('lx_course','lx_course.id=lx_clock.course_id') ...
  • 查询tp手册之后,发现GROUP 方法只支持获取分组的第一条数据,那就只能自己写了。 直接看代码 //先根据字段查询分组之后最大的id $groupDb = Db::name('admin_supplier_signature_log')->field("max(id) as...
  • protected $dateFormat = 'Y-m-d H:i:s'; 在模型中定义 时间戳转化格式 protected $type = [ 'check_time' => 'timestamp', 'completion_time' => 'timestamp', 'processing_time' =>...
  • $lists = Db::name('表名')->orderRaw('rand()')->limit(10)->select()->toArray();
  • // 默认情况下查询会过滤软删除数据 // 如果想要获得所有的数据(包括软删除数据) User::withTrashed()->find(); User::withTrashed()->select(); // 只查出软删除数据 User::onlyTrashed()->find(); ...
  • 一、数据更新 1、使用find方法获取数据,然后...2、通过where方法解和find方法的查询条件获取的数据进行修改 $user=Students::where('id',1)->find(); $user->uname ='admin'; $user->email ='66461682@qq.
  • TP5将查询结果集进行排序 记录一下

    千次阅读 2021-03-17 14:59:08
    需求:需要查询 account 表中每个账户在 report_date 表中对应关联的其中一个月的 字段 order_num 与 bi_ci_fee 之和的记录 (一条链表查询语句即可成功,由于出了一点点小问题没找到,无奈拆开写,仅供观赏) ...
  • 再开发插件的过程中,关联安装记录时需要唯一标识来获取已安装版本,需要使用闭包use参数来实现查询 //模型中需要with的方法 public function installedVersions() { return $this->hasOne...
  • TP5.1 查询数据库中上一条和下一条记录 //获取上一篇文章,如果是第一篇,上一篇就是最后一篇 if ($id == $fid) { $last = $model->where('id', '=', $eid)->limit(1)->find(); } else { $last = $...
  • $where = [ 'sms_date'=>['between',[$start_time,$end_time]], 'phone'=>'15323371121' ] Db::table('sms_code')->where($where)->count();
  • /实例化对象 $data = $uer ->where()->select()//带条件的查询语句 ALIAS $data = $uer->alias('a')//设置镖的别名 FIELD 用于查询 field()//返回须要的字段 ORDER order('字段 排序方法')//对数据进行排列asc 正常...
  • 有些时候我们在tp5的配置文件中写入了表前缀配置,那么我们在使用tp5构造查询的时候,如果去关联没有表前缀的表的时候查询就会报错,那么我们可以通过以下的方式去处理,保证数据的正常查询。 $pageres=Db::table("a...
  • tp5 满足多个条件搜索"or" 带参数的闭包查询 model(table) ->whereOr(function ($query) use($map1){ $query -> where($map1); }) ->whereOr(function ($query) use($map2){ $query -> where($...
  • 1、例:计算f表中money值的和,并赋予别名(where条件:change_type=2) field('sum(if(f.change_type=2,f.money,0)) as consume_money') 2、例:统计s表有多少条数据,并赋予别名(where条件:status=1 and audit_...
  • 方法 介绍 count 统计数量,参数是要统计的字段名(可选) max 获取最大值,参数... 以上这篇tp5 sum某个字段相加得到总数的例子就是小编共享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持乐购源码。
  • 查询条件就查询, 多个查询条件,只要有查询,就增加一个查询条件 //类型 if($sotype){ $where['type']=$sotype; } //合作单位 if($companyid){ $where['hezuodanwei']=$companyid; } //关键词模糊查询$...
  • 之前项目都是直接在控制器里面写JOIN查询的,这次项目试了下用关联模型,踩了很多坑,记录一下。 主表模型如下: class Members extends Model{ //关联用户信息表 public function MembersShopInfo(){ //uid为...
  • tp5数据库查询

    2021-01-12 14:38:33
    1.使用table方法查询use think\Db;//查询所有数据$data = Db::table('user')->select();//查询一条数据$data = Db::table('user')->find();2.使用name方法查询use think\Db;//查询所有数据$data ...
  • 本文实例讲述了tp5.1 框架查询表达式用法。分享给大家供大家参考,具体如下:查询表达式查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:where('字段名','表达式','查询条件...
  • TP框架中模糊查询实现$where['g.name'] = array('like','%'.$groupname.'%');表达式查询上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,查询表达式的使用格式:$map['字段1']= ...
  • tp6查询语句

    2021-06-26 13:29:24
    tp6中为什么使用wher条件查询如下:conn=Db::table("channel")−>where("chname",′like′,"conn = Db::table("channel")->where("ch_name",'like',"%{conn=Db::table("channel")−>where("chn​ame",′...
  • tp5视图 query 查询

    2021-04-22 02:51:51
    视图查询// $result = Db::view('data','id,name,status')// ->view('users',['nickname'=>'user_name','mobile','email'],'users.user_id = data.id')// ->where('data.status',...
  • // 获取当日的数据 Db::table(‘table’) ->whereTime(‘times’, ‘today’)->select(); // 获取昨天的数据 Db::table(‘table’)->whereTime(‘times’, ‘yesterday’)->select();...
  • TP5 查看当前ID信息

    2021-04-02 14:14:01
    TP5 查看当前ID信息 public function conventioncontent(){ $id = input('id'); $res = Convention::get($id); //模型 return $this->fetch('',['res'=>$res]); } 我是小白,记录代码。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,667
精华内容 16,266
关键字:

tp查询