Thinkphp 資料操作指南 查詢技巧

2021-06-05 04:56:55 字數 1599 閱讀 4587

字段別名

可以在查詢的字段裡面使用別名,例如

以mysql為例,我們可以使用

$user->where(』status=1′)

->field(』id,email,username as `name`』)

->limit(10)

->findall();

可以生成下面的sql語句

select id,email,username as `name` from think_user limit 10 where 1

注意在mysql下面一定在自己新增`符 號,否則會自動新增`符號導致不正常。

使用join

假如有二個表,第乙個表為comment表,第二個表為reply表,現在做乙個左連線,mysql上測試語句為:

select a.*,b.* from comment a left join reply b on a.id=b.cid

那麼可以使用下面的方式來寫查詢

$blog->table(』comment a』)

->join(』reply b on a.id=b.cid』)

->field(』a.*,b.*』)

->order(』id desc』)

->limit(』8′)

->findall();

$blog->table(』comment a』)

->join(』reply b on a.id=b.cid』)

->field(』a.id,a.name,a.subject,b.category』)

->order(』id desc』)

->limit(』8′)

->findall();

如果有更多的join表,還可以支援通過陣列引數傳入join方式

$model->table(』table a』)

->join(array(』table1 b on b.id=a.cid』,'table2 c on c.id=b.uid』))

->findall();

或者使用連貫操作中的多個join方法

$model->table(』table a』)

->join(』table1 b on b.id=a.cid』)

->join(』table2 c on c.id=b.uid』)

->findall();

需要注意的是陣列的方法和原來的方式有差別,原來的陣列第乙個元素是join的型別,現在型別統一放到字串表示式裡面了。如果沒有指定join類 型預設仍然是left join 如果需要使用其他的join方式,可以使用下面的方式

$model->table(』table a』)

->join(』table1 b on b.id=a.cid』)

->join(』right join table2 c on c.id=b.uid』)

->findall();

ThinkPHP之資料庫操作

thinkphp使用的是mvc架構,所以我們我們在運算元據庫時,首先需要建立自己的model類。在每個模組下有個model資料夾,我們可以將model類放置在該資料夾下。如果多個模組需要使用同一的model,則可以選擇在專案的下建立model資料夾來存放model 在使用model類來運算元據時,應...

thinkphp資料庫操作類

查詢方法 db table user limit 10 order id desc select 相當於執行下面的sql語句,並返回二維陣列。select from user order by id desc limit 10 where user name array like ly where ...

資料操作 增刪改查

select from 表名 例 查詢所有學生資料 select from students新增一行資料 格式一 所有字段設定值,值的順序與表中字段的順序對應 insert into 表名 values 例 插入乙個學生,設定所有欄位的資訊 insert into students values 0...