Frage

Ich habe ein kleines problem, und ich bin sicher, es ist ein bequemer/einfacher Weise zu erreichen, die Lösung, aber Sie alle Suchvorgänge werfen, bis ein Leerzeichen im moment !

Ich habe eine mysql db, die regelmäßig aktualisiert durch die php-Seite [ über einen cron-job ] dieses fügt hinzu oder löscht Sie die Einträge entsprechend.

Mein Problem ist, dass ich auch brauchen, um zu überprüfen, ob Sie alle details zu [D. H. die Telefon-Nummer oder ähnliches] für den Eintrag geändert haben, aber tut dies bei jedem Anruf nicht möglich [ nicht nur, dass ist mir zu viel des guten, aber ich bin eingeschränkt, durch eine 3rd-party-api-Aufruf limit] Und es ist nicht kritisch, info.

Also dachte ich mir es könnte am besten sein, überprüfen Sie einfach einen Eintrag pro Seite rufen, und Durchlaufen Sie die Zeilen/Einträge mit jeder weiteren Seite aufrufen.

Was wäre der beste Weg dies zu tun, dh verfolgen Sie, welcher Eintrag/Zeile in die Tabelle, die überprüft werden soll als Nächstes?

Ich habe 2 Ideen, wie man diese umsetzen:

1 ) Die id der aktuellen Zeile sein könnte, speichern Sie die Datei auf dem server [ sicher nicht die beste Weise]

2) ein zusätzliches Boolesches Feld [überprüfen] ist, fügen Sie in der Tabelle auf True gesetzt auf den ersten Eintrag, und false für alle anderen.Dann auf jeder Seite nennen es;findet 'wo check = TRUE' läuft der update check auf diese Zeile "set check = FALSE' 'set [the next row] check = TRUE'

Si dies der beste Weg, dies zu tun, oder hat jemand eine bessere sugestion ?

vielen Dank im Voraus !

.k

PS sorry für den Titel

Keine korrekte Lösung

Andere Tipps

Nicht sicher, ob dies eine gute Lösung, aber wenn ich die machen nächtliche massive updates, Schreibe ich die updates, um eine neue leere Tabelle, führen Sie dann eine SQL-select-verknüpfen von Tabellen und sagen Sie mir, wo Sie Verschieden sind, dann tun Sie, einen anderen SQL-UPDATE, wie

UPDATE table, temptable
SET table.col1=temptable.col1, table.col2=temptable.col2 ......
WHERE table.id = temptable.id;

Sie können die Speicherung der Zeitstempel, der eine Zeile aktualisiert wird, wird implizit mit ON UPDATE CURRENT_TIMESTAMP [http://dev.mysql.com/doc/refman/5.0/en/timestamp.html] oder explizit in Ihren update-SQL.Dann alles, was Sie tun müssen, ist wählen Sie die Zeile(N) mit dem niedrigsten Zeitstempel (mit ORDER BY und LIMIT) und Sie haben die nächste Zeile zu verarbeiten.So lange wie Sie sicherstellen, dass der Zeitstempel wird jedes mal aktualisiert.

z.B.Sagen Sie das Feld last_polled_on ZEITSTEMPEL zu speichern Sie die Zeit, die Sie Befragten eine Reihe.Ihre Beilage sieht aus wie:

INSERT INTO table (..., last_polled_on) VALUES (..., NOW());

Das update sieht wie folgt aus:

UPDATE table SET ..., last_polled_on = NOW() WHERE ...;

Und wählen Sie für die nächste Zeile zu Umfrage sieht wie folgt aus:

SELECT ... FROM table ORDER BY last_polled_on LIMIT 1;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top