ThinkPHP(3)SQL查询语句
ThinkPHP中對(duì)查詢語(yǔ)句,包含了基本的查詢方式、表達(dá)方式、快速查詢、區(qū)間查詢、組合查詢、SQL查詢、動(dòng)態(tài)查詢和子查詢。
一、查詢方式
ThinkPHP提供了三種基本的查詢方式:字符串條件查詢、索引數(shù)組條件查詢和對(duì)象條件查詢。在大多情況下,推薦使用索引數(shù)組和對(duì)象方式作為查詢條件,因?yàn)闀?huì)更安全。
1.使用字符串作為條件查詢
$user = M('user');
var_dump($user->where('id=1 AND user="姓名"')->select());
//最終生成的SQL語(yǔ)句
select * from 'user' where (id=1 AND user="姓名")
注意:where查詢方法里面只要包含條件即可,多個(gè)條件加上AND等連接符即可。
2.使用索引數(shù)組作為查詢條件
$user = M('user'); $condition['id'] = 1; $condition['user'] = 'name'; var_dump($user->where($condition)->select()); //最終生成的SQL語(yǔ)句 select * from 'user' where ('id'=1)AND('user' = 'name')注意:索引數(shù)組查詢的邏輯關(guān)系是AND,如果想改變?yōu)镺R,可以使用_logic定義查詢邏輯
基于上面的代碼增加如下一行:
$condition['_logic'] = 'OR'; //將默認(rèn)AND改成OR3.使用對(duì)象方式來(lái)查詢
$user = M('user'); $condition = new \stdClass(); $condition->id = 1; $condition->user = 'name'; var_dump($user->where($condition)->select()); //最終生成的SQL語(yǔ)句 select * from user where ('id' = 1) AND ('user' = 'name')注意:stdClass類是php內(nèi)置的類,可以理解為一個(gè)空類,在這里可以理解為把條件的字段作為成員保存到stdClass類里。而這里的'\'是將命名空間設(shè)置為根目錄,否則會(huì)導(dǎo)致當(dāng)前目錄找不到此類。使用對(duì)象和數(shù)組查詢,效果是一樣的,可以互換。在大多數(shù)情況下,ThinPHP推薦使用數(shù)組形式更高效。
二、表達(dá)式查詢
對(duì)于那些要實(shí)現(xiàn)模糊判斷的查詢,比如大于、等于、小于之類的SQL查詢,可以使用表達(dá)式查詢方式。查詢表達(dá)式格式:$map['字段名'] = array('表達(dá)式','查詢條件');
注意:表達(dá)式不區(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查询语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实战之04JavaWeb-02R
- 下一篇: 动态规划算法php,php算法学习之动态