2013.
06.
25
16:39:51
「FuelPHP1.6、クエリビルダを理解する(1)前準備、基本」の続きです。
検索関連は恐らく
1.データの取得項目(全項目を取得とかこの項目のみを取得とか)
2.データの取得形式(文字列で取得とか配列で取得とか)
3.データの取得条件、他(where句とかorder by句とか)
を理解すれば大丈夫だと思うのですよね。
「3.」は覚えなくちゃいけないこと多そうだけど。
それでは早速見ていきまする。
まずは
1.データの取得項目(全項目を取得とかこの項目のみを取得とか)
について試してみましたよφ(--)
■ 全項目取得:select()
■ 特定項目のみ取得:select('column01','column02')
■ 別名をつけて取得:select(array('column01','alias_name'))
■ 複数項目を別名をつけて取得:select(array('column01','alias_name'), array('column02','alias_name2'))
■ distinctで取得:->distinct(true)
■ group byしてdistinctで取得:->distinct(true)->group_by('column01')
■ 合計を取得:select(DB::expr('SUM(column1) as alias_name'))
■ 件数を取得:select(DB::expr('COUNT(*) as alias_name'))
「DB::expr()」はエスケープを回避する関数です。
SUM()関数とかを使いたい場合は「DB::expr()」をかませば良いのですね。
てか「DB::expr()」使えばどうとでもなりそうですね。
試しに
と書いたら「pk_id」と「column_varchar01」が取得できましたし
と書いたら全項目取得できました。
……「DB::expr()」って、身も蓋も無い関数だな!?Σ( ̄◇ ̄;
まぁ便利だけど。
次回はデータの取得形式を見ていきまする。
検索関連は恐らく
1.データの取得項目(全項目を取得とかこの項目のみを取得とか)
2.データの取得形式(文字列で取得とか配列で取得とか)
3.データの取得条件、他(where句とかorder by句とか)
を理解すれば大丈夫だと思うのですよね。
「3.」は覚えなくちゃいけないこと多そうだけど。
それでは早速見ていきまする。
まずは
1.データの取得項目(全項目を取得とかこの項目のみを取得とか)
について試してみましたよφ(--)
■ 全項目取得:select()
$q = DB::select()->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
■ 特定項目のみ取得:select('column01','column02')
$q = DB::select('pk_id','column_varchar01')->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
■ 別名をつけて取得:select(array('column01','alias_name'))
$q = DB::select(array('pk_id','alias_name'))->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
■ 複数項目を別名をつけて取得:select(array('column01','alias_name'), array('column02','alias_name2'))
$q = DB::select(array('pk_id','alias_name'), array('column_varchar01','alias_name2'))->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
■ distinctで取得:->distinct(true)
$q = DB::select('column_varchar01')->from('tbl_test01')->distinct(true);
var_dump($q->execute());
var_dump($q->execute());
■ group byしてdistinctで取得:->distinct(true)->group_by('column01')
$q = DB::select('column_int02', 'column_varchar01')->from('tbl_test01')->distinct(true)->group_by('column_int02');
var_dump($q->execute());
var_dump($q->execute());
■ 合計を取得:select(DB::expr('SUM(column1) as alias_name'))
$q = DB::select(DB::expr('SUM(column_int02) as cnt'))->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
■ 件数を取得:select(DB::expr('COUNT(*) as alias_name'))
$q = DB::select(DB::expr('COUNT(*) as cnt'))->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
「DB::expr()」はエスケープを回避する関数です。
SUM()関数とかを使いたい場合は「DB::expr()」をかませば良いのですね。
てか「DB::expr()」使えばどうとでもなりそうですね。
試しに
$q = DB::select(DB::expr('pk_id, column_varchar01'))->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
と書いたら「pk_id」と「column_varchar01」が取得できましたし
$q = DB::select(DB::expr('*'))->from('tbl_test01');
var_dump($q->execute());
var_dump($q->execute());
と書いたら全項目取得できました。
……「DB::expr()」って、身も蓋も無い関数だな!?Σ( ̄◇ ̄;
まぁ便利だけど。
次回はデータの取得形式を見ていきまする。