在我的数据库中存储了一个名为“ advertisement”的表,其中包含以下记录:

id |   code      | position
 1 |   header1   | header
 2 |   header2   | header
 3 |   header3   | header
 4 |   footer1   | footer
 5 |   footer2   | footer
 6 |   banner1   | banner
 7 |   banner2   | banner


我只需要为每个“位置”选择一个记录。例如,输出可能是:

 1 |   header1   | header
 5 |   footer2   | footer
 7 |   banner2   | banner


我该如何实现?

Advertisement::where(...)->distinct()->get();


这并没有解决问题,因为考虑到所有列,而不仅仅是“位置”,它给了我独特的价值

最佳答案

尝试使用groupBy()

Advertisement::groupBy('position')->get();

关于php - Laravel从同一表中为指定的列选择3个行,每个行的值不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39256246/

10-11 03:33