最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

tp5.1框架數(shù)據(jù)庫(kù)子查詢操作實(shí)例分析

 更新時(shí)間:2020年05月26日 10:51:01   作者:人生如初見(jiàn)_張默  
這篇文章主要介紹了tp5.1框架數(shù)據(jù)庫(kù)子查詢操作,結(jié)合實(shí)例形式分析了tp5.1框架數(shù)據(jù)庫(kù)子查詢相關(guān)原理、操作實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了tp5.1框架數(shù)據(jù)庫(kù)子查詢操作。分享給大家供大家參考,具體如下:

首先構(gòu)造子查詢SQL,可以使用下面三種的方式來(lái)構(gòu)建子查詢。

使用fetchSql方法

fetchSql方法表示不進(jìn)行查詢而只是返回構(gòu)建的SQL語(yǔ)句,并且不僅僅支持select,而是支持所有的CURD查詢。

$subQuery = Db::table('think_user')
 ->field('id,name')
 ->where('id', '>', 10)
 ->fetchSql(true)
 ->select();

生成的subQuery結(jié)果為:

SELECT `id`,`name` FROM `think_user` WHERE `id` > 10 

使用buildSql構(gòu)造子查詢

$subQuery = Db::table('think_user')
 ->field('id,name')
 ->where('id', '>', 10)
 ->buildSql();

生成的subQuery結(jié)果為:

( SELECT `id`,`name` FROM `think_user` WHERE `id` > 10 )

調(diào)用buildSql方法后不會(huì)進(jìn)行實(shí)際的查詢操作,而只是生成該次查詢的SQL語(yǔ)句(為了避免混淆,會(huì)在SQL兩邊加上括號(hào)),然后我們直接在后續(xù)的查詢中直接調(diào)用。

然后使用子查詢構(gòu)造新的查詢:

Db::table($subQuery . ' a')
 ->where('a.name', 'like', 'thinkphp')
 ->order('id', 'desc')
 ->select();

生成的SQL語(yǔ)句為:

SELECT * FROM ( 
 SELECT `id`,`name` FROM `think_user` WHERE `id` > 10 ) a 
WHERE 
 a.name LIKE 'thinkphp' 
ORDER BY 
 `id` 
desc

使用閉包構(gòu)造子查詢

IN/NOT INEXISTS/NOT EXISTS之類(lèi)的查詢可以直接使用閉包作為子查詢,例如:

Db::table('think_user')
 ->where('id', 'IN', function ($query) {
  $query->table('think_profile')->where('status', 1)->field('id');
 })
 ->select();

生成的SQL語(yǔ)句是

SELECT * FROM `think_user` 
WHERE `id` IN ( SELECT `id` FROM `think_profile` WHERE `status` = 1 )
Db::table('think_user')
 ->whereExists(function ($query) {
  $query->table('think_profile')->where('status', 1);
 })->find();

生成的SQL語(yǔ)句為

SELECT * FROM `think_user` 
WHERE EXISTS ( SELECT * FROM `think_profile` WHERE `status` = 1 ) 

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

亚东县| 抚州市| 呼玛县| 洪江市| 常山县| 龙川县| 凌海市| 临泽县| 邹平县| 偏关县| 上犹县| 贺兰县| 寻甸| 龙门县| 合江县| 吴旗县| 育儿| 闸北区| 綦江县| 德阳市| 郴州市| 江孜县| 本溪市| 黑河市| 桓台县| 乐昌市| 贺州市| 易门县| 姚安县| 禹城市| 辽宁省| 松溪县| 馆陶县| 邢台县| 沙坪坝区| 孟州市| 卢龙县| 宜州市| 巴林左旗| 南华县| 天长市|