Menggunakan Array Pada Klausa WHERE IN di MySQL
Misalkan, Sahabat memiliki kode yang mereturn sebuah array :
$org_units = array_keys(OrgUnit::model()->getMeAndMyChilds($org_unit_code)) ;
Variabel $org_units misal, beriisi data berikut :
Array ( [0] => 6200060300 [1] => 6200060301 )
Bagaimana menggunakan Array ini pada klausa WHERE IN ?, Jawabannya ada di [1].
Contohnya adalah sebagai berikut (catatan : contoh kode ini menggunakan Yii Framework):
public function getLogtempUpdate($org_unit_code="")
{
$connection = Yii::app()->db;
if($org_unit_code == "") {
$sql = "SELECT a.*,b.employee_id,b.other_id,b.fullname,b.dateofbirth,b.pension_date
FROM log_temp a INNER JOIN employee_temp b ON b.id=a.id WHERE a.logtype=1";
} else {
$org_units = array_keys(OrgUnit::model()->getMeAndMyChilds($org_unit_code)) ;
$org_units_csv = "'".join("','",$org_units)."'" ;
$sql = "SELECT a.*,b.employee_id,b.other_id,b.fullname,b.dateofbirth,b.pension_date
FROM log_temp a INNER JOIN employee_temp b ON b.id=a.id WHERE a.logtype=1 AND b.org_unit_code IN({$org_units_csv})";
}
$command = $connection->createCommand($sql);
$model = $command->queryAll();
return $model;
}
Referensi
PHP/MYSQL using an array in WHERE clause, http://stackoverflow.com/questions/907806/php-mysql-using-an-array-in-where-clause