Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit MySQL die letzte Besuchszeit für jeden einzelnen Benutzer in Rails abrufen?
So finden Sie den letzten Besuch aller einzelnen Benutzer in Rails mit MySQL
Sie möchten die letzte Besuchszeit für jeden einzelnen Benutzer abrufen in Ihrer Datenbank. Sie versuchen, die DISTINCT ON-Funktion in Ihrer ActiveRecord-Abfrage zu verwenden, stoßen jedoch auf einen SQL-Syntaxfehler.
Die DISTINCT ON-Funktion ist spezifisch für PostgreSQL und wird von MySQL nicht unterstützt. Stattdessen können Sie das gewünschte Ergebnis mit den Funktionen GROUP BY und MAX erzielen.
Ändern Sie Ihre Abfrage wie folgt:
<code class="ruby">Event.group(:user_id).maximum(:time)</code>
Diese Abfrage gruppiert die Ereignisse nach Benutzer-ID und gibt das Maximum zurück Zeitwert für jede Gruppe. Dadurch erhalten Sie die letzte Besuchszeit für jeden einzelnen Benutzer.
Ausgabe:
Die resultierende Ausgabe ist ein Hash, wobei die Schlüssel die Benutzer-IDs und die Werte sind sind die letzten Besuchszeiten als Zeitobjekte:
<code class="ruby">{ 21 => Tue, 18 Dec 2018 11:15:24 UTC +00:00, 23 => Thu, 20 Dec 2018 06:42:10 UTC +00:00 }</code>
Beachten Sie, dass Sie strftime verwenden können, um die Zeitwerte nach Ihren Wünschen zu formatieren.
Das obige ist der detaillierte Inhalt vonWie kann ich mit MySQL die letzte Besuchszeit für jeden einzelnen Benutzer in Rails abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!