thinkphp323query - juedaiyuer/researchNote GitHub Wiki
#ThinkPHP3.2.3的查询语言#
详细情况可以参考手册,仅仅作为工作日志使用...
##使用字符串作为查询条件##
$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();
//最后生成的SQL语句
SELECT * FROM think_user WHERE type=1 AND status=1
##使用数组作为查询条件##
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
// 把查询条件传入查询方法
$User->where($condition)->select();
//最后生成的SQL语句
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
//使用逻辑关系OR
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR';
// 把查询条件传入查询方法
$User->where($condition)->select();
//最后生成的SQL语句
SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp'
数组方式查询更加高效
##使用对象方式来查询##
$User = M("User"); // 实例化User对象
// 定义查询条件
$condition = new stdClass();
$condition->name = 'thinkphp';
$condition->status= 1;
$User->where($condition)->select();
//最后生成的SQL语句
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
##表达式查询##
$map['字段名'] = array('表达式','查询条件');
###表达式###
EQ 等于(=)
NEQ 不等于(<>)
GT 大于(>)
EGT 大于等于(>=)
LT 小于(<)
ELT 小于等于(<=)
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询
EXP 表达式查询,支持SQL语法
####DB_LIKE_FIELDS####
'DB_LIKE_FIELDS'=>'title|content'
$map['title'] = 'thinkphp';
//查询条件
title like '%thinkphp%'
//查询条件数组形式
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');
$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND');
//等效于
(a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
##快捷查询##
###实现不同字段相同的查询条件###
$User = M("User"); // 实例化User对象
$map['name|title'] = 'thinkphp';
// 把查询条件传入查询方法
$User->where($map)->select();
查询条件就变成
name= 'thinkphp' OR title = 'thinkphp'
###实现不同字段不同的查询条件###
$User = M("User"); // 实例化User对象
$map['status&title'] =array('1','thinkphp','_multi'=>true);
// 把查询条件传入查询方法
$User->where($map)->select();
##动态查询##
###getBy###
getByName
getByEmail
###getFieldBy###
getFieldByName
##source##
- ThinkPHP3.2.3快速入门.pdf-快速入门3:查询语言