Heim > Datenbank > MySQL-Tutorial > Wie kann ich mit ActiveRecord die letzte Besuchszeit für jeden einzelnen Benutzer in MySQL abrufen?

Wie kann ich mit ActiveRecord die letzte Besuchszeit für jeden einzelnen Benutzer in MySQL abrufen?

Susan Sarandon
Freigeben: 2024-10-30 06:23:03
Original
448 Leute haben es durchsucht

How to Retrieve the Most Recent Visit Time for Each Unique User in MySQL with ActiveRecord?

Verwendung von DISTINCT ON mit MySQL in ActiveRecord

Beim Umgang mit umfangreichen Daten ist es oft notwendig, bei der Durchführung von Datenbankoperationen eindeutige Informationen zu extrahieren. Ein solches Szenario ist die Identifizierung des letzten Besuchs jedes einzelnen Benutzers.

Frage:

Beim Versuch, die letzte Besuchszeit für jeden einzelnen Benutzer mithilfe von DISTINCT ON abzurufen In der Syntax ist ein ActiveRecord::StatementInvalid-Fehler aufgetreten. Die verwendete Abfrage war:

<code class="ruby">Event.order(time: :desc).select('DISTINCT ON(user_id) user_id, time')</code>
Nach dem Login kopieren

Lösung:

Die DISTINCT ON-Syntax ist spezifisch für PostgreSQL und gilt nicht für MySQL. Um das gewünschte Ergebnis in MySQL mit ActiveRecord zu erzielen, sollte die Abfrage geändert werden:

<code class="ruby">Events.group(:user_id).maximum(:time)</code>
Nach dem Login kopieren

Ausgabe:

Diese geänderte Abfrage erzeugt die erwartete Ausgabe, wobei die Schlüssel stellen eindeutige Benutzer-IDs dar und die Werte stellen die Zeit ihrer letzten Besuche dar:

{21=>Tue, 18 Dec 2018 11:15:24 UTC +00:00, 23=>Thu, 20 Dec 2018 06:42:10 UTC +00:00}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mit ActiveRecord die letzte Besuchszeit für jeden einzelnen Benutzer in MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage