gpt4 book ai didi

php - 在 Laravel 中获取字段的最新不同值

转载 作者:搜寻专家 更新时间:2023-10-31 21:04:17 25 4
gpt4 key购买 nike

我想查询latest + distinct name.

我有不同的部分可以工作,但它们不是最新的。我不确定如何在 Laravel 中做到这一点。


我试过了

$localDevices = Device::orderBy('created_at', 'desc')->groupBy('mac')->get();

$localDeviceName = [];
$i = 0;

foreach ($localDevices as $localDevice) {
foreach ($devices as $device) {
if($localDevice->mac == $device->device_mac ){
$localDeviceName[$i]['name'] = $localDevice->name;
$localDeviceName[$i]['mac'] = $device->device_mac;
$i++;
}
}
}

数据库

enter image description here


我得到了

array:1 [▼
0 => array:3 [▼
"name" => "Apple Watch"
"img" => "/images/photos/devices/apple-watch.jpg"
"mac" => "080027E2FC7D"
]
]

我希望它显示 ps4,因为它是最新的


尝试 #2

尝试更新我的

orderBy('created_at', 'desc')orderBy('created_at', 'asc')

我得到了相同的结果。


尝试#3

尝试将 orderBy 放在 groupBy 之后

Device::groupBy('mac')->orderBy('created_at', 'desc')->get();

我得到了相同的结果。


对此的任何提示/建议将不胜感激!

最佳答案

您正在对您的 mac 值执行 groupBy,这不是唯一的,您的 Apple watch 和 PS4 具有相同的 ma​​c,mysql 首先分组然后命令您的分组结果。这就是为什么您总是购买 Apple Watch。

你想要的是从每个组中获取最新记录,为此你可能会编写一个原始查询,检查这个 Retrieving the last record in each group

关于php - 在 Laravel 中获取字段的最新不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com