繁体   English   中英

Laravel 4在DB :: select查询条件下

[英]Laravel 4 where in condition with DB::select query

我有下一个SQL查询:

SELECT summary_table.device_id, WEEKDAY(summary_table.day) as day, AVG(summary_table.shows) as avg_shows
    FROM (
         SELECT device_id, day, sum(shows) as shows
         FROM statistics
         GROUP BY device_id, day
    ) as summary_table
    WHERE device_id IN (1,2,3) // Just for example
    GROUP BY device_id, WEEKDAY(day)

我应该如何使用Laravel执行此操作? 我把这个查询放在DB :: select函数中,但是如何将所有id放在“WHERE device_id IN(?)”条件下? 我尝试使用“array(implode(',',$ var))”但它不起作用。 如果我有像“13,14”那样的id,我只得到id = 13的结果。

所以问题是如何放置而不是“?” ids数组?

看一下这里的文档,向下滚动到“使用数组中的位置”:

http://four.laravel.com/docs/queries

whereIn方法接受一个数组,所以直接传入$var ,不需要内爆。

->whereIn('device_id', $var)

Laravel正在使用PDO库。 遗憾的是,与PDO绑定不适用于WHERE IN 你可以在这里阅读它

所以你要做的就是在你的查询中放入准备好的字符串,如下所示:

"(...)
    WHERE device_id IN (".array(implode(',', $var)).")
    (...)"
"(...)
    WHERE device_id IN (".implode(',', $var).")
    (...)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM