2016-11-14 5 views
0

Meine Tabelle sieht wie folgt ausMySql, wie zuletzt msgs kennen zu/von verschiedenen Benutzern

id INT 
from9 VARCHAR 12 
to9 VARCHAR 12 
message TEXT 
datetime9 DATETIME 

from9 und in9 sind Benutzer-IDs. Natürlich, wenn Susan (ID: susan) sendet eine Nachricht an Jack (ID: Klinke), Zeile in MySql Tabelle aussehen wird:

55 (Auto-increment INT) 
susan 
jack 
Hello Jack how are you doing? 
2016-11-14 22:22:22 

Wenn Jack Nachricht zurück sendet, from9 und in9 wird invese sein. Wie Sie sehen können, speichere ich eine Nachricht für beide Parteien (das ist in Ordnung). Ich möchte alle "letzten" Nachrichten auflisten, die entweder an mich gesendet ODER von mir gesendet wurden, und ich habe Probleme beim Erstellen einer solchen Anfrage. Ich dachte, um Workaround zu tun und mehr Fragen zu haben: 1) bekomme Nachrichten an mich gesendet 2) bekomme Nachrichten von mir gesendet 3) legte alle diese Nachrichten in einem Satz und letzte Abfrage, wo ich diese IDs lesen.

Ist es möglich, eine Abfrage dafür zu erstellen?

+1

Machen Sie wirklich neue Tabellen für jeden Chat, der zwischen zwei Personen auftritt? 'ID: jack' und' ID: susan' scheinen einfach nicht gültig zu sein. Eine ID ist eine Ganzzahl, eine Ganzzahl, der Sie mehrere Tabellen hinzufügen können, z. B. die ID, die zu jack und susan gehört. – Xorifelse

+0

Verwenden Sie eine 'ORDER BY' in Ihrer Abfrage gegen die Spalte 'DATETIME', um 'letzte' Nachrichten anzuzeigen. – KDOT

+1

Dies ist bonkers – Strawberry

Antwort

0

Ich hoffe, Sie Antwort aus dieser Abfrage

SELECT max(datetime),msg FROM `message` WHERE from9="a" or to9="a" 

Here „Datetime“ ist mein Datum Feldnamen in db bekommen und bin zu erzeugen Abfrage mit einer Nachricht, die gesendet oder empfangen durch den Benutzer „a“ letzten Zeit

+0

Nicht ok, weil ich die letzte Nachricht entweder von Mike an mich gesendet oder von mir an Mike geschickt habe. Dein Beispiel wird mir 2 Nachrichten zurückgeben (mich an Mike, Mike an mich). Ich brauche nur die letzte Nachricht, die zwischen uns gesendet wird. Ich mache zwei Abfragen und UNION zwischen ihnen, addiere einen eindeutigen Schlüssel für mich/ihn und entferne Duplikate mit Ausnahme der letzten Nachricht. – Maxitrol

Verwandte Themen