TP5.1 where in 查询条件的几种写法

1,821 阅读1分钟

本人使用的版本为 TP5.1.41

1、直接使用 whereIn 进行查询

// TP5.1查询语法如下 
$sql = db('user')->whereIn('id', [1,2,3])->select(); 
// SQL语句如下 
SELECT * FROM `oa_user` WHERE `id` IN (1,2,3)

2、直接使用 where 进行查询

// TP5.1查询语法如下 
$sql = db('user')->where(['id' => [1,2,3]])->select(); 
// SQL语句如下 
SELECT * FROM `user` WHERE `id` IN (1,2,3)

3、使用 db 库下的 Where 类进行查询

// TP5.1查询语法如下 
use think\db\Where; // 引入db库下的Where类 
$where = new Where(); // new一个where对象 
$where['id'] = ['in', [1,2,3]]; 
$sql = db('user')->where($where)->select(); 
// SQL语句如下 
SELECT * FROM `user` WHERE `id` IN (1,2,3)

该方法同样适用于联合查询,如下所示:

// TP5.1查询语法如下 
use think\db; // 引入db类
use think\db\Where; // 引入Where类 
$where = new Where(); // new一个where对象 
$where['id'] = ['in', [1,2,3]]; 
$where['status'] = ['neq', 0]; 
$where[] = ['exp', Db::raw("FIND_IN_SET(6, u_ids)")]; 
$sql = db('user')->where($where)->select(); 
// SQL语句如下 
SELECT * FROM `user` WHERE `id` IN (1,2,3) AND `status` <> 0 AND ( FIND_IN_SET(6, u_ids) )

以上是我目前整理的三种方法,日常开发应该够用,欢迎大神指点一二,不胜荣幸!