< onga blog >

開発に関することなど。

Query Builder

Onga.inc
<?php
$users = DB::table('users')->get();

foreach ($users as $user)
{
    var_dump($user->name);
}
?>

すべての列を取得

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

var_dump($user->name);
?>

列を指定して取得

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

列を指定/行を指定

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

カラムのリストを取得

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

カラムのリストを取得

<?php
$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節を指定する

<?php
$query = DB::table('users')->select('name');
$users = $query->addSelect('age')->get();
?>

セレクト節を追加する

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

WHERE文を使用する

<?php
$users = DB::table('users')
                    ->where('votes', '>', 100)
                    ->orWhere('name', 'John')
                    ->get();
?>

OR文

<?php
$users = DB::table('users')
         ->whereBetween('votes', array(1, 100))->get();
?>

WHERE BETWEEN

<?php
$users = DB::table('users')
                    ->whereNotBetween('votes', array(1, 100))->get();
?>

WHERE NOT BETWEEN

<?php
$users = DB::table('users')
                    ->whereIn('id', array(1, 2, 3))->get();
 
$users = DB::table('users')
                    ->whereNotIn('id', array(1, 2, 3))->get();
?>

WHERE IN

<?php
$users = DB::table('users')
                    ->whereNull('updated_at')->get();
?>

WHERE NULL

<?php
$users = DB::table('users')
                    ->orderBy('name', 'desc')
                    ->groupBy('count')
                    ->having('count', '>', 100)
                    ->get();
?>

ORDER BY

<?php
$users = DB::table('users')
                    ->orderBy('name', 'desc')
                    ->groupBy('count')
                    ->having('count', '>', 100)
                    ->get();
?>

ORDER BY

<?php
$users = DB::table('users')->count();
$price = DB::table('orders')->max('price');
$price = DB::table('orders')->min('price');
$price = DB::table('orders')->avg('price');
$total = DB::table('users')->sum('votes');
?>

集計

<?php
DB::table('users')->increment('votes');
DB::table('users')->increment('votes', 5);
DB::table('users')->decrement('votes');
DB::table('users')->decrement('votes', 5);
?>

increment / decrement