MySQLやPostgreSQLで型変換してデータ取得する
開発環境:CakePHP2.5.1
text型のカラムに数値データを入れていて、その最大値を取得したい時にそのまま実行すると、
(そもそも型の指定がおかしいというのは置いておいて)
1 2 3 4 5 6 7 8 |
<?php $params = array( 'fields' => array( 'max(number)', ), ); $data = $this->Sample->find('first', $params); ?> |
このようなコードになり、numberに「90」と「100」のデータが存在すると「100」のデータが返ってきて欲しいところですが、「90」が返ってきてしまいます。
そんな時にどうしたら良いかというとcastなどの型変換を使うことになります。
1 2 3 4 5 6 7 8 |
<?php $params = array( 'fields' => array( 'max(cast(number as unsigned))', ), ); $data = $this->Sample->find('first', $params); ?> |
このようにそのまま書くだけで型変換が行われ、「100」のデータが返されます。
柴田 篤志
最新記事 by 柴田 篤志 (全て見る)
- WordPressとCakePHPの共存 - 2014年10月22日
- サイトマップの作成方法 - 2014年10月12日
- INSERTしたIDを取得する - 2014年10月4日