이 조건을 사용하여 2 가지 조건 사이에서 OR을 만들 수 있습니다.
$query=db_select('users','u')->fields('u',array('uid','title','created','uid'));
$query->join('flag_content','fc' , 'u.uid = fc.content_id');
$db_or = db_or();
$db_or->condition('fc.fid', '5' , '=');
$db_or->condition('fc.uid', $uid , '=');
$query->condition($db_or);
$result = $query->execute()->fetchAll();
3 개의 조건이 있고 con1 및 con2 OR con3과 같고이 경우 많은 다른 경우를 원한다고 가정하면 AND 내에 AND 조건을 가질 수 있으며 db_or를 사용하려고 할 때 db_or와 같은 db_and를 사용할 수 있습니다 db_or의 조건은 원하는 경우에 사용되며 db_and를 사용할 수있는 조건 사이에는 약간 지루하지만 아래 예제를 구현할 수 있습니다.
$query = db_select('work_details_table','wd');
$query->join('work_table','w','wd.request_id = w.request_id');
$query->fields('w',array('client_id'));
$query->fields('wd');
$query->condition('wd.request_id',$request_id);
if($status == 5 || $status == 6 || $status == 7){
$query->condition('wd.status',$status);
}elseif($user_type == 'writer'){
$query->condition('wd.writer_id',$user_id);
$db_or = db_or();
$db_and = db_and();
$db_and->condition('wd.status',2);
$db_and->isNull('wd.editor_id');
$db_or->condition('wd.status',4);
$db_or->condition('wd.status',1);
$db_or->condition($db_and);
$query->condition($db_or);
}else if($user_type == 'editor'){
$query->condition('wd.editor_id',$user_id);
$db_or = db_or();
$db_and = db_and();
$db_and->condition('wd.status',2);
$db_and->isNotNull('wd.editor_id');
$db_or->condition('wd.status',3);
$db_or->condition($db_and);
$query->condition($db_or);
}
//-----------------------------------------------------------------------------------------
$completed_sku = $query->execute()->fetchAll();
이것은 Drupal PDO 쿼리에서 복합 및 조건을 처리 할 수있는 방법을 알려줍니다.
db_or()
. AND 인 5 가지 조건 중 OR해야하는 두 가지 조건 만있는 경우에도 작동합니다.$query->where()
그러한 경우에는를 사용할 필요가 없습니다 .