where

  1. 表达式查询,就是 where()方法的基础查询方式;
    1. Db::name('user')->where('id', '>', 70)->select();
  2. 关联数组查询,通过键值对来数组键值对匹配的查询方式;
    1. $result = Db::name('user')->where([
    2. 'gender' => '男',
    3. 'price' => 100
    4. //'price' => [60,70,80]
    5. ])->select();
  3. 索引数组查询,通过数组里的数组拼装方式来查询;
    1. $result = Db::name('user')->where([
    2. ['gender', '=', '男'],
    3. ['price', '=', '100']
    4. ])->select();
  4. 将复杂的数组组装后,通过变量传递,将增加可读性;
    1. $map[] = ['gender', '=', '男'];
    2. $map[] = ['price', 'in', [60, 70, 80]];
    3. $result = Db::name('user')->where($map)->select();
  5. 字符串形式传递,简单粗暴的查询方式;
    1. Db::name('user')->where('gender="男" AND price IN (60, 70, 80)')->select();

    field

  6. 使用 field()方法,可以指定要查询的字段;
    1. Db::name('user')->field('id, username, email')->select();
    2. Db::name('user')->field(['id', 'username', 'email'])->select();
  7. 使用 field()方法,给指定的字段设置别名;
    1. Db::name('user')->field('id,username as name')->select();
    2. Db::name('user')->field(['id', 'username'=>'name'])->select();
  8. 在 field()方法里,可以直接给字段设置 MySQL 函数;
    1. Db::name('user')->field('id,SUM(price)')->select();
  9. 对于更加复杂的 MySQL 函数,必须使用字段数组形式;
    1. Db::name('user')->field(['id', 'LEFT(email, 5)'=>'leftemail' ,])->select();
  10. 使用 field(true)的布尔参数,可以显式的查询获取所有字段,而不是*;
    1. Db::name('user')->field(true)->select();
  11. 使用 field()方法中字段排除,可以屏蔽掉想要不显示的字段;

    1. Db::name('user')->field('details,email', true)->select();
    2. Db::name('user')->field(['details,email'], true)->select();

    7. 使用 field()方法在新增时,验证字段的合法性;

    1. Db::name('user')->field('username, email, details')->insert($data);

    alias

  12. 使用 alias()方法,给数据库起一个别名;

    1. Db::name('user')->alias('a')->select();

    limit

  13. 使用 limit()方法,限制获取输出数据的个数;

    1. Db::name('user')->limit(5)->select();
  14. 分页模式,即传递两个参数,比如从第 3 条开始显示 5 条 limit(2,5);

    1. Db::name('user')->limit(2, 5)->select();
  15. 实现分页,需要严格计算每页显示的条数,然后从第几条开始;

    1. //第一页
    2. Db::name('user')->limit(0, 5)->select();
    3. //第二页
    4. Db::name('user')->limit(5, 5)->select();

    page

  16. page()分页方法,优化了 limit()方法,无须计算分页条数;
    1. //第一页
    2. Db::name('user')->page(1, 5)->select();
    3. //第二页
    4. Db::name('user')->page(2, 5)->select();

    order

  17. 使用 order()方法,可以指定排序方式,没有指定第二参数,默认 asc;
    1. Db::name('user')->order('id', 'desc')->select();
  18. 支持数组的方式,对多个字段进行排序;

    1. Db::name('user')->order(['create_time'=>'desc', 'price'=>'asc'])->select();

    group

  19. 使用 group()方法,给性别不同的人进行 price 字段的总和统计;

    1. Db::name('user')->field('gender, sum(price)')->group('gender')->select();
  20. 也可以进行多字段分组统计;

    1. Db::name('user')->field('gender, sum(price)') ->group('gender,password')->select();

    having

  21. 使用 group()分组之后,再使用 having()进行筛选;
    1. $result = Db::name('user') ->field('gender, sum(price)') ->group('gender') ->having('sum(price)>600') ->select();