我有MySQL查询,我怎么用ActiveRecord写这个?
SELECT *
FROM `sel_posts`
WHERE `login_id` = 22 OR 23 OR 24 ... (this ids from array $ifollow)
ORDER BY `datetime` DESC
LIMIT 0 , 20
答案 0 :(得分:0)
首先,最好将OR
替换为IN
部分中的WHERE
。
假设模型名为SelPost
,您可以使用ActiveQuery
来完成此操作:
$models = SelPost::find()
->where(['login_id' => $ifollow])
->orderBy(['datetime' => SORT_DESC])
->limit(20)
->all();
where
非常聪明,可以在in
数组的情况下自动添加$ifollow
运算符。
官方文档: