Query um in dem neuesten Text zu suchen

won_gak

Erfahrenes Mitglied
Hilfe! Query um in dem neuesten Text zu suchen

Hallo an alle,

ich habe folgendes Problem: Ich habe eine Tabelle, in der sich Texte befinden. Bei Änderungen am Text wird ein neuer Datensatz angelegt (angezeigt wird nur der zuletzt bearbeitete Text). Also ähnlich wie bei einem WIKI.
Nun möchte ich in dieser Tabelle suchen, dabei sollen natürlich auch nur die neuesten Datensätze berücksichtigt werden.

Hier mein Ansatz:
Code:
SELECT t1.name, t2.txt AS out_txt, t2.timestamp, MAX( t1.timestamp ) AS max_timestamp
FROM texte AS t1
LEFT JOIN texte AS t2 ON t2.id = t1.id AND t2.txt
LIKE '%suche%'
GROUP BY t1.name
ORDER BY t1.timestamp DESC

Leider werden bei der Suchabfrage nur die Datensätze zurückgegeben, die zuerst getroffen werden (wegen des JOINs). Das heißt natürlich, dass nur ältere "Versionen" gefunden werden. Ich hatte die Idee mit
Code:
HAVING t2.timestamp = max_timestamp
die Datensätze herauszufiltern, die auch tatsächlich die aktuelle Version betreffen...

Ich komme einfach nicht weiter. Ich habe das Gefühl, dass ich einen grundsätzlichen Fehler gemacht habe...

Habt ihr eine Idee?
 
Zuletzt bearbeitet:
Also... ich habe nach 4 Stunden immer noch keinen Ansatz... kann mir bitte jemand helfen? Ich wäre ihm auf ewig dankbar.... AHHHHHH! Ich raste aus... Dabei habe ich das Gefühl, dass die Antwort irgendwie greifbar ist...
 
Hi won_gak,

ich verstehe Dein Problem leider nicht ganz, aber wenn Du immer die neuesten Datensätze haben möchtest, kannst Du das nicht anhand der Zeit/Date abhängig machen?

Gruß

Torsten
 
HI xthetronx,

danke, dass du dich meiner annimmst ;)

ich muss es auf jeden Fall von der Zeit abhängig machen. Leider befinden sich aber alle Texte in dieser einen Tabelle... Diese werden über die Spalte "name" den jeweiligen Texten zugewiesen... deswegen das GROUP BY name.

Jetzt muss ich natürlich nur diejenigen Datensätze durchsuchen, die MAX(timestamp) haben...
 
Aber wahrscheinlich bin ich nicht sehr hilfreich.
Ich könnte mir nochwas vorstellen wie,

| ID | ID_CHILD | Time | Text |
ID ist autowert

Ein Text der vorhanden ist:

1 | 0 | zeit | Hier stäeht text |

Wenn Du den Text geändert hast:

2 | 1 | zeit | Hier steht der Text

Soll heissen. Du hast einen Text erstellt (Hier stäeht text), dieser wird geändert und bekommt die ID 2, und ID_Child 1, also einen Verweis auf den 1 Eintrag und auf die ID.

Vielleicht könntest Du so nachprüfen, dass überall wo keine 0 in ID_Child steht Änderungen durchgeführt wurden.

Sh.. ich werde müde und fange an zusammenhangloses Zeug zu schreiben
:p

Gruß

Torsten
 
Zurück