iT邦幫忙

DAY 21
0

初學laravel系列 第 21

鐵人賽 Day 21 查詢產生器 SELECT

今天要介紹的是SELECT的部分,

在SQL中在製作SQL式的時候已可以加上很多條件去限定,

所以我們在QUERY產生器的使用上也會有相對應的使用方式,

以下是一些他使用方式的介紹,

今天在介紹完這些東西後,

我們將會在明天將我們之前完成的留言板整合起來。

Selects#

從資料表取得所有資料列

$users = DB::table('users')->get();

foreach ($users as $user)

{

var_dump($user->name);

}

從資料表取得單一資料列

$user = DB::table('users')->where('name', 'John')->first();

var_dump($user->name);

從資料表取得單一資料列的資料欄位

$name = DB::table('users')->where('name', 'John')->pluck('name');

取得資料表欄位值的清單

$roles = DB::table('roles')->lists('title');

這個方法將會回傳欄位 title 值的組合陣列,你也可以自訂回傳的陣列 key 名稱:

$roles = DB::table('roles')->lists('title', 'name');

指定 SELECT 欄位

$users = DB::table('users')->select('name', 'email')->get();

$users = DB::table('users')->distinct()->get();

$users = DB::table('users')->select('name as user_name')->get();

再以存在的查詢加入 SELECT 的欄位

$query = DB::table('users')->select('name');

$users = $query->addSelect('age')->get();

使用 WHERE 的語句

$users = DB::table('users')->where('votes', '>', 100)->get();

使用 OR 的語句

$users = DB::table('users')

->where('votes', '>', 100)

->orWhere('name', 'John')

->get();

使用 WHERE Between 的語句

$users = DB::table('users')

->whereBetween('votes', array(1, 100))->get();

使用 WHERE IN 的語句,並指定 IN 陣列值

$users = DB::table('users')

->whereIn('id', array(1, 2, 3))->get();

$users = DB::table('users')

->whereNotIn('id', array(1, 2, 3))->get();

使用 WHERE NULL 的語句,去找到還沒設定值的紀錄

$users = DB::table('users')

->whereNull('updated_at')->get();

Order By 、 Group By 及 Having

$users = DB::table('users')

->orderBy('name', 'desc')

->groupBy('count')

->having('count', '>', 100)

->get();

Offset & Limit

$users = DB::table('users')->skip(10)->take(5)->get();


上一篇
鐵人賽 Day 20 sql 產生器
下一篇
鐵人賽 Day 22 Controller 簡易Restful 介紹
系列文
初學laravel30

尚未有邦友留言

立即登入留言