2012-07-26 87 views
1

请任何人都可以转换此查询到的Drupal db_selectMySQL查询的Drupal查询

$query="SELECT DISTINCT 'supplier_id','supplier_name','supplier_address','supplier_city', 'supplier_pincode', 'supplier_state', 'supplier_country' FROM pmai_supplier_directory WHERE "; 
foreach($list as $k=>$value) 
{ 
    $query.=" supplier_interest LIKE '%".$value."%' OR"; 
} 
$query=substr($query,0,strlen($query)-2); 
echo $query.=" ORDER BY supplier_name"; 

谢谢

回答

4

所以查询是:

SELECT DISTINCT 'supplier_id','supplier_name','supplier_address','supplier_city', 
    'supplier_pincode', 'supplier_state', 'supplier_country' 
FROM pmai_supplier_directory 
WHERE supplier_interest LIKE '%foo%' 
    OR supplier_interest LIKE '%bar%' 
    OR supplier_interest LIKE '%baz%' 
ORDER BY supplier_name"; 

这可以这样做的方式:

$list = array('foo','bar','baz'); 
$query = db_select('pmai_supplier_directory','pmsp') 

    ->fields('pmsp',array(
    'supplier_id', 
    'supplier_name', 
    'supplier_address', 
    'supplier_city', 
    'supplier_pincode', 
    'supplier_state', 
    'supplier_country' 
)) 
    ->orderBy('supplier_name') 
    ->distinct(); 

    $orCond = db_or();$elt = 0; 
    foreach($list as $k => $value) { 
    $orCond->condition('pmsp.supplier_interest','%'.$value.'%','LIKE'); 
    $elt++; 
    } 
    if ($elt) { 
    $query->condition($orCond); 
    } 

然后你举ST必须执行并获取结果。

+0

谢谢你,它的工作 – smk3108 2012-07-26 12:40:29

+1

不显着缺失? – zwirbeltier 2015-04-02 14:15:17

+0

@zwirbeltier,右,它现在加入 – regilero 2015-04-02 14:48:36