MySQLやPostgreSQLで型変換してデータ取得する
開発環境:CakePHP2.5.1
text型のカラムに数値データを入れていて、その最大値を取得したい時にそのまま実行すると、
(そもそも型の指定がおかしいというのは置いておいて)
<?php $params = array( 'fields' => array( 'max(number)', ), ); $data = $this->Sample->find('first', $params); ?>
このようなコードになり、numberに「90」と「100」のデータが存在すると「100」のデータが返ってきて欲しいところですが、「90」が返ってきてしまいます。
そんな時にどうしたら良いかというとcastなどの型変換を使うことになります。
<?php $params = array( 'fields' => array( 'max(cast(number as unsigned))', ), ); $data = $this->Sample->find('first', $params); ?>
このようにそのまま書くだけで型変換が行われ、「100」のデータが返されます。