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

  1. PHP/MYSQL using an array in WHERE clause, http://stackoverflow.com/questions/907806/php-mysql-using-an-array-in-where-clause

Comments