Yii2将普通查询转换为雄辩

时间:2017-05-29 07:23:57

标签: yii2 yii2-advanced-app

如何使用DB::table('user')->select(DB::raw("(case when country!='".$country."' then 1 else 2 end)as country"),DB::raw("(count(post))as post"),DB::raw("(count(images))as images")) ->orderBy('country', 'ASC') ->orderBy('posts', 'desc') ->orderBy('images', 'desc') ->get(); 在Yii2中写这个?

Query Builder

感谢。

1 个答案:

答案 0 :(得分:0)

如果要在顶部显示report_id,然后在reference_no记录中显示相同的内容,则可以使用UNION直接使用sql。如果ReportDetails是型号名称:

$reportId = 2;
$referenceNo = 5;

$sql = sprintf("
select * from report_details where report_id = %d
union distinct 
select * from report_details where reference_no = %d
", $reportId, $referenceNo);

$rows = ReportDetails::findBySql($sql)->all();

检查这个sql小提琴:http://sqlfiddle.com/#!9/d7cb6/2