ThinkPHP 8 常用 SQL 查询语句归集

ThinkPHP 16 0 2026-10-30

ThinkPHP 8 常用 SQL 查询语句归集
类别 方法 / 写法 作用说明 示例代码
基础条件 where('字段', 值) 等于(简写) Db::name('user')->where('id', 1)->select();
where('字段', '操作符', 值) 标准比较(>、<、>=、<=、<>) where('age', '>=', 18)
whereOr('字段', 值) OR 条件 where('status',1)->whereOr('type',2)
whereRaw('原生SQL', [绑定]) 原生复杂条件,务必用参数绑定 whereRaw('id > ? AND name LIKE ?', [1, '%a%'])
快捷查询 whereLike('字段', '模式') LIKE 模糊匹配 whereLike('name', 'think%')
whereNotLike('字段', '模式') NOT LIKE whereNotLike('name', 'think%')
whereIn('字段', 数组) IN 查询 whereIn('id', [1,2,3])
whereNotIn('字段', 数组) NOT IN whereNotIn('id', [1,2,3])
whereNull('字段') 字段 IS NULL whereNull('email')
whereNotNull('字段') 字段 IS NOT NULL whereNotNull('email')
whereBetween('字段', [起, 止]) BETWEEN 区间 whereBetween('id', [1, 8])
whereNotBetween('字段', [起, 止]) NOT BETWEEN whereNotBetween('id', [1, 8])
whereColumn('字段1', '操作符', '字段2') 两字段比较 whereColumn('update_time', '>', 'create_time')
时间查询 whereTime('字段', '>=', 时间) 时间比较(自动识别字段类型) whereTime('create_time', '>=', '2026-09-23')
whereBetweenTime('字段', 起, 止) 时间区间(你之前用的) whereBetweenTime('create_time', '2026-09-23', '2026-09-24')
whereDay / whereMonth / whereYear 按天/月/年筛选 whereDay('create_time', '2026-09-23')
复杂组合 where(闭包) AND 包裹一组 OR 条件,自动加括号 where(function($q){ $q->whereLike('name','a%')->whereOr('id','>',10); })
whereOr(闭包) OR 包裹一组条件 whereOr(function($q){ ... })
结果获取 find() 查单条,无结果返回 null Db::name('user')->where('id',1)->find();
select() 查多条,返回数据集对象 ->select()
value('字段') 查单字段值 ->where('id',1)->value('name');
column('字段', '索引字段') 查一列(可指定索引) ->column('name', 'id');
chunk(数量, 闭包) 分批处理大量数据 ->chunk(100, function($users){ ... });
cursor() 游标查询(内存友好) foreach(Db::name('user')->cursor() as $user){ ... }
链式辅助 field('id,name') 指定查询字段 ->field('id,name')->select();
order('id', 'desc') 排序 ->order('id', 'desc');
limit(10) 限制条数 ->limit(10);

针对时间查询的提醒

  • datetime 字段:用 whereBetweenTime 时,如果只传日期 2026-09-23,结束边界会变成当天 00:00:00,导致漏数据。需要手动补全到 23:59:59。

  • date 字段:直接用 whereBetweenTime 或 whereBetween 传 2026-09-23 即可,不要补时间,否则可能引发隐式类型转换,影响索引使用。

上一篇:TP8创建自定义跨域中间件Cors,允许指定域名请求

下一篇:没有了

讨论数量:0

请先登录再发表讨论。 2026-10-31

天涯网魂
3 杠 5 星
TA 的文章
TA 的随言
TA 的资源链