格式化高级查询参数到select里
null Driver_Database_Driver_MySQL::format_select_adv( )
protected function format_select_adv(&$builder)
{
if (empty($builder['select_adv']))
{
return;
}
foreach ($builder['select_adv'] as $item)
{
if (!is_array($item))continue;
if (is_array($item[0]))
{
$column = $item[0][0];
$alias = $item[0][1];
}
else if (preg_match('#^(.*) AS (.*)$#i', $item[0] , $m))
{
$column = $this->_quote_identifier($m[1]);
$alias = $m[2];
}
else
{
$column = $this->_quote_identifier($item[0]);
$alias = $item[0];
}
// 其它参数
$args_str = '';
if (($count_item=count($item))>2)
{
for($i=2;$i++;$i<count($count_item))
{
$args_str .= ','. $this->_quote_identifier($item[$i]);
}
}
$builder['select'][] = array
(
Database::expr_value(strtoupper($item[1]).'('.$this->_quote_identifier($column.$args_str).')'),
$alias,
);
}
}