1.查询方式:
使用字符串作为查询条件:
$user=M('student');//实例化student
$user->where('type=1 and status=1')->select();
这样生成的sql语句是select * form student where type=1 and status=1。
使用数组方式:
$user->where('type=1 and status=1')->select();
最后生成的SQL语句与上面一样。
注意:如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑。
表达式查询:
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
表达式 | 含义 |
---|---|
EQ | 等于(=) |
NEQ | 不等于(<>) |
GT | 大于(>) |
EGT | 大于等于(>=) |
LT | 小于(<) |
ELT | 小于等于(<=) |
LIKE | 模糊查询 |
[NOT] BETWEEN | (不在)区间查询 |
[NOT] IN | (不在)IN 查询 |
EXP | 表达式查询,支持SQL语法 |
快捷查询:
不同字段的相同查询条件:$['name|type']='thinkphp';
查询条件就变成name= 'thinkphp' OR type = 'thinkphp'
不同字段的不同查询条件:
$['name&type']='thinkphp';
查询条件就变成:name= 'thinkphp' OR type = 'thinkphp'
统计查询:
方法 | 说明 |
---|---|
Count | 统计数量,参数是要统计的字段名(可选) |
Max | 获取最大值,参数是要统计的字段名(必须) |
Min | 获取最小值,参数是要统计的字段名(必须) |
Avg | 获取平均值,参数是要统计的字段名(必须) |
Sum | 获取总分,参数是要统计的字段名(必须) |
SQL查询:
1.query方法:query(sql语句),如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法),如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作。
2.execute方法:用于更新和写入,用法与query一样,如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。
子查询:select()方法:当select方法的参数为false的时候,表示不进行查询只是返回构建SQL。
buildSQL方法:调用buildSql方法后不会进行实际的查询操作,而只是生成该次查询的SQL语句。