<?php
namespace app\controller;
use app\BaseController;
//1. 引用Db
use think\facade\Db;
class Index extends BaseController
{
public function index()
{
// 比较查询 默认等于
// &|! 支持多个where
// $user = Db::name('user')
// ->where('username|email', 'like', '%xiao%')
// ->where('price&uid', '>', 0)
// ->select();
// $res = Db::name('user')->where(['gender' => '1', 'status' => '1'])->select();
// 多数组 Db::raw 自定义条件
// $user = Db::name('user')->where([
// ['id', '>', 0],
// ['status', '=', 1],
// ['price', 'exp', Db::raw('>=80')],
// ['email', 'like', '%163%']
// ])->select();
// where([$map])结果里添加where
// $map = [
// ['id', '>', 0],
// ['price', 'exp', Db::raw('>=80')],
// ['email', 'like', '%163%']
// ];
// $user = Db::name('user')
// ->where([$map])
// ->where('status', 1)
// ->select();
// 双数组
// $map1 = [
// ['username', 'like', '%小%'],
// ['email', 'like', '%163%']
// ];
// $map2 = [
// ['username', 'like', '%孙%'],
// ['email', 'like', '%.com%']
// ];
//
// $user = Db::name('user')->whereOr([$map1, $map2])->select();
// exp 插入自定义SQL
// $res = Db::name('user')->where('id', 'exp', '= 1')->select();
// $res = Db::name('user')->whereExp('id', '= 1')->select();
// 闭包
// $user = Db::name('user')->where(function ($query) {
// $query->where('id', '>', 0);
// })->whereOr(function ($query) {
// $query->where('username', 'like', '%小%');
// })->select();
// whereRaw() 自定义SQL
// $user = Db::name('user')
// ->whereRaw('(username LIKE "%小%" AND status=1) OR id>0')
// ->select();
// 预处理 参数绑定
// $user = Db::name('user')
// ->whereRaw('(username LIKE :username AND status=:status) OR id>:id',
// ['username'=>'%小%', 'status'=>1, 'id'=>0])
// ->select();
// like 模糊查询,不区分大小写
// $res = Db::name('user')->where('username', 'like', 'A%')->select();
// 多个模糊 默认and
// $res = Db::name('user')->where('username', 'like', ['a%', 'b%'], 'or')->select();
// 快速查询
// whereLike 省去括号里对like
// $res = Db::name('user')->whereLike('username', 'A%')->select();
// whereNotLike 查反
// $res = Db::name('user')->whereNotLike('username', 'A%')->select();
// between 在区间 同理其他
// $res = Db::name('user')->where('id', 'between', '1,5')->select();
// in 在列表 同理其他
// $res = Db::name('user')->where('id', 'in', '1,5')->select();
// null 查NULL 同理其他
// $res = Db::name('user')->where('status', 'null')->select();
// 查反
// $res = Db::name('user')->where('status', 'not null')->select();
// whereColumn() 比较两个字段 默认=
// $user = Db::name('user')
// ->whereColumn('update_time', '>', 'create_time')
// ->select();
// whereEmail() 快速查email字段
// $user = Db::name('user')->whereEmail('xiaoxin@163.com')->find();
// whereUsername() 快速查username字段
// $user = Db::name('user')->whereUsername('蜡笔小新')->find();
// getByFieldName() FieldName自定义 只查询一条
// $user = Db::name('user')->getByEmail('xiaoxin@163.com');
// getFieldByFieldName() 通过一个字段值查另一个字段值
// $user = Db::name('user')->getFieldByEmail('xiaoxin@163.com', 'username');
// when() 通过条件判断,执行闭包里的分支查询
// $user = Db::name('user')->when(false, function ($query) {
// $query->where('id', '>', 0);
// }, function ($query) {
// $query->where('username', 'like', '%小%');
// })->select();
return json($res);
}
}
ThinkPHP6 where()
最新推荐文章于 2024-05-20 09:56:37 发布