表达式查询

可以使用多个 where() 子句连接在一起

  1. <?php
  2. /**
  3. * 链式操作 where
  4. * name:不含表名前缀
  5. * table:可以含有表前缀
  6. */
  7. // 多个 where() 连用
  8. public function fun1()
  9. {
  10. $data = Db::name('wh_record')
  11. ->where('IDX', '>', 80000)
  12. ->where('UNIT', '=', 2)
  13. ->where('status', '=', '归还')
  14. ->select();
  15. return json($data);
  16. }
  17. // name方法替换table方法
  18. public function fun2()
  19. {
  20. $data = Db::table('wh_record')
  21. ->where('IDX', '>', 80000)
  22. ->where('UNIT', '=', 2)
  23. ->where('status', '=', '归还')
  24. ->select();
  25. return json($data);
  26. }

数组条件

也可以将条件设置为一个数组,然后传递给 where()

  1. <?php
  2. // 将所有条件设置为数组
  3. public function fun3()
  4. {
  5. $data = Db::table('wh_record')
  6. ->where([
  7. 'UNIT' => 2,
  8. 'STATUS' => '归还'
  9. ])
  10. ->where('IDX', '>', 80000)
  11. ->select();
  12. return json($data);
  13. }

支持IN 条件

  1. <?php
  2. // IN 条件
  3. public function fun4()
  4. {
  5. $data = Db::table('wh_record')->where([
  6. 'UNIT' => 2,
  7. 'STATUS' => ['归还', '借出'],
  8. ])->select();
  9. return json($data);
  10. }

索引数组

  1. <?php
  2. // 索引数组
  3. public function fun5()
  4. {
  5. $data = Db::table('wh_record')->where([
  6. ['IDX', '>', 10000],
  7. ['UNIT', '=', 2],
  8. ['STATUS', 'IN', ['归还', '借出']],
  9. ])->select();
  10. return json($data);
  11. }

字符串条件

注意单引号的转义

  1. <?php
  2. /**
  3. * 字符串条件
  4. */
  5. // 字符串操作,注意转义字符
  6. public function fun6()
  7. {
  8. $data = Db::table('wh_record')
  9. ->where('IDX > 10000 AND STATUS IN (\'归还\', \'借出\') AND UNIT = 2')
  10. ->select();
  11. return json($data);
  12. }

字符串预处理

  1. <?php
  2. // 字符串配合与处理机制
  3. public function fun7()
  4. {
  5. $IDX = 10000;
  6. $UNIT = 2;
  7. $data = Db::table('wh_record')
  8. ->where("IDX>:IDX AND UNIT=:UNIT",
  9. ['IDX' => $IDX , 'UNIT' => $UNIT, ])
  10. ->select();
  11. return json($data);
  12. }