Ich habe mir die meisten anderen Lösungen hier angesehen, aber keiner von ihnen scheint für mich zu arbeiten. Ich habe eine Tabelle mit ungefähr 100K Reihen darin.Laravel 5.3 - Reihenfolge der Ergebnisse über WhereIn Mysql
Jede Zeile ist ein Datensatz von einem Iot-Gerät, das die eindeutige ID dieses Geräts enthält. Die Geräte-ID kann 10K-Zeilen von 100K haben.
Reading::whereIn('device_id', $ids)->orderBy('created_at',
'DESC')->groupBy('device_id')->get()->
Ich bin in der Lage, die IDs zu ziehen ich brauche und gruppieren sie zusammen mit „device_id“ als Abfrage oben aber sein das erste Ergebnis Kommissionierung und nicht die letzte für jeden ID.
Wie kann ich den neuesten Datensatz für jede ID anstelle der ältesten erhalten?
Ich habe Laravel Sammlungen und die umgekehrte(), erste(), neueste(); Option, aber ich kann es immer noch nicht bekommen
Irgendwelche Ideen?
UPDATE
Die best ich in der Lage gewesen, mit zu kommen ist diese Abfrage unter dem den letzten Datensatz für jeden
DEVICE_IDSELECT t1.* FROM readings t1 WHERE t1.id = (SELECT t2.id FROM readings
t2 WHERE t2.device_id = t1.device_id ORDER BY t2.id DESC LIMIT 1)
nicht greift dann werde ich Schleife durch denjenigen Ergebnisse und greifen nur die Datensätze, auf die der Benutzer zugreifen kann.
Nicht schön, aber es funktioniert für jetzt.
Wenn jemand jemals weg findet es in eloquent zu tun bitte
ich diesen zu helfen „Error in Grammar.php Linie 58: strtolower() erwartet Parameter 1 sein Zeichenfolge mit dem angegebenen Objekt“ – ATechGuy
Sie wahrscheinlich in dem übergebenen Instanz eines Objekts ... zeigen Sie uns den Code – GabMic
welchen Code Eitan? mein Code ist oben, die $ IDs ist ein Array – ATechGuy