CASTとか

なんかすごく効率の悪そうなSQL文だけど、

[php]<?php // mysql $sql =<<<EOD_SQL SELECT * FROM hoges WHERE CAST(age AS SIGNED) <= ? EOD_SQL;

// $dbh は MDB2 のオブジェクトだよ $list = $dbh->getAll($sql, NULL, array($age)); [/php]
ageフィールドを文字列型にした + プリペアステートメントの場合、CAST を使わないとうまく動作しなかった。
文字列比較になる。
ちなみにプリペアステートメント使わずにベタで書くと数値比較になる。

あー。
ってか、getAll の第二引数(確かデータタイプだったような)をちゃんと指定すればもしかして数値扱いしてくれたのか?
マニュアルよく読め俺。