Zwei mySQL-Query-Results miteinander vergliechen

ZodiacXP

Erfahrenes Mitglied
Hallo.

Heute möchte ich mal zwei mySQL-Query-Results miteinander vergleichen.
Natürlich kann man mittels While-Schleife jede Zeile einzeln durchgehen aber ist es auch möglich den kompletten Result einfach zu verwenden.

z.B. "if ($alter_result == $neuer_result) return true;"

Gibt es da eine einfache Variante?
Am besten mittels Checksumme (Traffic sparen) oder sowas weil die alten Daten mittels Cookie übertragen werden...

THX!
ZodiacXP
 
Danke, aber beantwortet net so meine Frage.
Ich weis ja das man es mit WHILE-Schleifen machen könnte, aber ich würde gerne wissen wie es einfacher geht ohne viel Serverlast.
Es ist alles erlaubt von einer extra SQL-Tabelle bis zum undenkbaren.

Es liegt mir wirklich sehr viel an der Serverlast, nur mit so einer WHILE ist das zuviel weil da locker 300 Einträge zusammen kommen können pro Person.
 
Nur eine Idee:

Du könntest die IDs bzw. andere eindeutige Keys der alten Abfrage zu einem String für die Verwendung mit IN zusammenbauen. Dann startest Du eine "COUNT(*)-Abfrage" und prüfst mit [phpf]mysql_num_rows[/phpf] ob die gleiche Anzahl Datensätze herauskommt. So erfährst Du, ob ein Datensatz nicht mehr zur Abfrage gehört. Das gleiche machst Du nochmal ohne die Einschränkung mit IN, um sicher zu gehen, dass auch kein Datensatz hinzugekommen ist.

Angenommen Du erhältst mit der alten Abfrage:
Code:
id  feld1
 2   foo
 5   bar
 8   foobar
Die Anzahl z.B. mit [phpf]count[/phpf] in PHP ermitteln => 3

Du bildest dann folgende Abfragen:
Code:
select count(*) as `anzahl`
from tabelle
where `id` in (2,5,8)
  # nun die Einschränkungen, die in der 
  # Originalabfrage auch geprüft wurden:
  and `feld`='Bedingung'
Code:
select count(*) as `anzahl`
from tabelle
where 
  # nur die Einschränkungen, die in der 
  # Originalabfrage auch geprüft wurden:
  `feld`='Bedingung'
Beide Ergebnisse vergleichst Du mit der ermitteln Anzahl Elemente des Arrays.
Um den String für die IN-Bedingung zusammen zu setzen benötigst Du möglicherweise auch eine Schleife, kannst es aber vielleicht auch so drehen, dass Du mit [phpf]implode[/phpf] arbeiten kannst.

Ob das am Ende schneller ist, weiß ich nicht.

Gruß hpvw
 
Danke! Das ist schon eine gute Idee. Ich habe nun eine Spalte hinzugefügt die einen crc32 wert enthält. Bin grade am suchen wie man die Summe aus mehreren SQL-Zeilen ausgeben kann ohne WHILE.

EDIT: Habs!
SELECT SUM(`spalte`) AS `summe` FROM `tabelle` WHERE 1

Dange nochma!
 
Zuletzt bearbeitet:
Zurück