【小(xiǎo)編推薦】ThinkPHP3.2——子(zǐ)查詢

2014-06-26 &nbs★★₹p; |   發♠↓±≠布者:梁國(guó)芳   |&nb•♣±✔sp;  查看(kàn):332₩♠☆α0次

Thinkphp

從(cóng)3.0版本開(kāi)始新增了(le)子(↔£©σzǐ)查詢支持,有(yǒu)兩種使用(yòng)方式:

1、使用(yòng)select方法 當select方法¥σ✔的(de)參數(shù)為(wèi)false的(de)時(s>→∞hí)候,表示不(bù)進行(xíng)查詢隻是(shì)•↓返回構建SQL,例如(rú):

  1. // 首先構造子(zǐ)查詢SQL
  2. $subQuery = $model->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->select(false);

當select方法傳入false參數(shù)的(de)$∏$↕時(shí)候,表示不(bù)執行(xí≈♣σng)當前查詢,而隻是(shì)生(shēng)成查詢S ♣×☆QL。

2、使用(yòng)buildSql方法

  1. $subQuery = $model->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->buildSql();

調用(yòng)buildSql方法後不(bù)會(huì)進行(xín∏ ®g)實際的(de)查詢操作(zuò),而隻是(shì)≠≠₽生(shēng)成該次查詢的(de)SQL語句(為(wèi™¶)了(le)避免混淆,會(huì)在SQL兩邊加上(s≥★ hàng)括号),然後我們直接在後續的(de)查詢中直接調用(yòng)。

  1. // 利用(yòng)子(zǐ)查詢進行(¶≥xíng)查詢
  2. $model->table($subQuery.' a')->where()->order()->select()

構造的(de)子(zǐ)查詢SQL可(kě)用(yòng)于ThinkPHP ε™的(de)連貫操作(zuò)方法,例如(rú)t♦★$∑able where等。