どうも、なおや(@naoya2_2)です。
仕事上の開発で、SQLのIN句に配列を渡したかったのですが苦戦したのでメモしておきます。
実行したいSQL
1 | SELECT COUNT(*) FROM user WHERE id IN (100, 200, 300) AND name = 'NAOYA'; |
結論、以下の方法で解決です。
【解決】FuelPHPでの記述
FuelPHP
1 2 3 4 5 6 7 8 9 10 11 12 | $user_ids = array(100, 200, 300); $name = 'NAOYA'; $sql = SELECT COUNT(*) FROM user WHERE id IN :user_ids AND name = :name; $params = array('user_ids' => $user_ids); $dbQuery = DB::query($sql); $dbQuery->bind(':name', $name); $dbQuery->parameters($params); $result = $dbQuery->execute()->as_array(); |
これで想定通りの動きをしました。
高橋直也(@naoya2_2)
フリーランスエンジニア。SEとして主に某企業顧客管理システムの開発、改修を担当している。ブログでは30歳未経験からSESを経てフリーランスになった経緯等を発信中。以前はブログの運営やライティングを教える講師としても活動。