【FuelPHP】MySQLにIN句を仕込む方法と【メモ】

アイキャッチ IN句 プログラミング

どうも、なおや(@naoya2_2)です。

仕事上の開発で、SQLのIN句に配列を渡したかったのですが苦戦したのでメモしておきます。

実行したいSQL

SELECT COUNT(*) FROM user WHERE id IN (100, 200, 300) AND name = 'NAOYA';

このIN句に配列をそのまま渡しても、配列を文字列に変換して入れ込もうとしてもうまくいきませんでした。

結論、以下の方法で解決です。

【解決】FuelPHPでの記述

FuelPHP

$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();

これで想定通りの動きをしました。