聚合查询

  1. 使用count()方法,可以求出所查询数据的数量;

    1. Db::name('user')->count();
  2. count()可设置指定 id,比如有空值(Null)的 uid,不会计算数量;

    1. Db::name('user')->count('uid');
  3. 使用 max()方法,求出所查询数据字段的最大值;

    1. Db::name('user')->max('price');
  4. 如果 max()方法,求出的值不是数值,则通过第二参数强制转换;

    1. Db::name('user')->max('price', false);
  5. 使用 min()方法,求出所查询数据字段的最小值,也可以强制转换;

    1. Db::name('user')->min('price');
  6. 使用 avg()方法,求出所查询数据字段的平均值;

    1. Db::name('user')->avg('price');
  7. 使用 sum()方法,求出所查询数据字段的总和;

    1. Db::name('user')->sum('price');

    子查询

  8. 使用 fetchSql()方法,可以设置不执行 SQL,而返回 SQL 语句,默认 true;

    1. Db::name('user')->fetchSql(true)->select();
  9. 使用 buidSql()方法,也是返回 SQL 语句,但不需要再执行 select(),且有括号;

    1. Db::name('user')->buildSql(true);
  10. 结合以上方法,我们实现一个子查询; ```php $subQuery = Db::name(‘two’)->field(‘uid’)->where(‘gender’, ‘男’)->buildSql(true); $result = Db::name(‘one’)->where(‘id’,’exp’,’IN ‘.$subQuery)->select();

  1. 4. 使用闭包的方式执行子查询;
  2. ```php
  3. $result = Db::name('one')->where('id', 'in', function ($query) {
  4. $query->name('two')->where('gender', '男')->field('uid');
  5. })->select();

原生查询

  1. 使用 query()方法,进行原生 SQL 查询,适用于读取操作,SQL 错误返回 false;
    1. Db::query('select * from tp_user');
  2. 使用 execute 方法,进行原生 SQL 更新写入等,SQL 错误返回 false;
    1. Db::execute('update tp_user set username="孙悟空" where id=29');