where

where 方法是数据库查询的精髓,可以完成包括普通查询、表达式查询、组合查询在内的查询操作。where 方法的参数支持字符串和数组。详情请查看 查询方法


表达式查询

查询表达式的用法:

  1. Db::table('user')
  2. ->where('id', '>', 1)
  3. ->whereOr('name', '=', 'baigo')
  4. ->select();

数组条件

可以通过数组方式批量设置查询条件。

  1. $map = array('id', '>', 1);
  2. Db::table('user')->where($map)->select();
  3. $map = array(
  4. array('id', '>', 1),
  5. array('mail', 'like', '%baigo@qq.com%'),
  6. );
  7. Db::table('user')->where($map)->select();

原生 SQL 条件

使用原生 SQL 条件直接查询和操作,必须使用 ` 符号来包裹 表名、字段名 等,例如:

  1. Db::table('user')->where('`type`=1 AND `status`=1')->select();

最后生成的 SQL 语句是

  1. SELECT * FROM `user` WHERE `type`=1 AND `status`=1

使用原生 SQL 条件的时候,建议配合预处理机制,确保安全,例如:

  1. $bind = array(
  2. array('id', 1, 'int'),
  3. array('name', 'baigo'),
  4. );
  5. Db::table('user')->where('`id`=:id AND `username`=:name')->bind($bind)->select();