ThinkPHP(3)SQL查询语句
ThinkPHP中對查詢語句,包含了基本的查詢方式、表達方式、快速查詢、區(qū)間查詢、組合查詢、SQL查詢、動態(tài)查詢和子查詢。
一、查詢方式
ThinkPHP提供了三種基本的查詢方式:字符串條件查詢、索引數(shù)組條件查詢和對象條件查詢。在大多情況下,推薦使用索引數(shù)組和對象方式作為查詢條件,因為會更安全。
1.使用字符串作為條件查詢
$user = M('user');
var_dump($user->where('id=1 AND user="姓名"')->select());
//最終生成的SQL語句
select * from 'user' where (id=1 AND user="姓名")
注意:where查詢方法里面只要包含條件即可,多個條件加上AND等連接符即可。
2.使用索引數(shù)組作為查詢條件
$user = M('user'); $condition['id'] = 1; $condition['user'] = 'name'; var_dump($user->where($condition)->select()); //最終生成的SQL語句 select * from 'user' where ('id'=1)AND('user' = 'name')注意:索引數(shù)組查詢的邏輯關系是AND,如果想改變?yōu)镺R,可以使用_logic定義查詢邏輯
基于上面的代碼增加如下一行:
$condition['_logic'] = 'OR'; //將默認AND改成OR3.使用對象方式來查詢
$user = M('user'); $condition = new \stdClass(); $condition->id = 1; $condition->user = 'name'; var_dump($user->where($condition)->select()); //最終生成的SQL語句 select * from user where ('id' = 1) AND ('user' = 'name')注意:stdClass類是php內(nèi)置的類,可以理解為一個空類,在這里可以理解為把條件的字段作為成員保存到stdClass類里。而這里的'\'是將命名空間設置為根目錄,否則會導致當前目錄找不到此類。使用對象和數(shù)組查詢,效果是一樣的,可以互換。在大多數(shù)情況下,ThinPHP推薦使用數(shù)組形式更高效。
二、表達式查詢
對于那些要實現(xiàn)模糊判斷的查詢,比如大于、等于、小于之類的SQL查詢,可以使用表達式查詢方式。查詢表達式格式:$map['字段名'] = array('表達式','查詢條件');
注意:表達式不區(qū)分大小寫。
//EQ:等于(=)
$map['id'] = array('eq',1); ? //where為id=1
//NEQ:不等于(<>)
$map['id'] = array('neq',1); ? //where為id<>1
//GT:大于(>)
$map['id'] = array('gt',1); ? //where為id>1
//EGT:大于等于(>=)
$map['id'] = array('egt',1); ? //where為id>=1
//LT:小于(<)
$map['id'] = array('lt',1); ? //where為id<1
//ELT:小于等于(<=)
$map['id'] = array('elt',1); ? //where為id<=1
//[NOT]LIKE:模糊查詢
$map['user'] = array('like','%小%'); ? //where為like %小%
//[NOT]LIKE:模糊查詢的數(shù)組方式
$map['user'] = array('like',array('%小%','%大%'),'AND');
//生成的SQL
select * from 'user' where (('name' like '%小%' AND 'name' like '%大%'));
?
轉(zhuǎn)載于:https://www.cnblogs.com/sjxx/p/5626516.html
總結(jié)
以上是生活随笔為你收集整理的ThinkPHP(3)SQL查询语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实战之04JavaWeb-02R
- 下一篇: Python subprocess执行持