2017-06-08 5 views
0

Disclaimer - Ich bin sehr, sehr neu in der Welt von MySQL und Datenbanken/PHP. Allerdings wurde ich in eine Last-Minute-Position der Schadenskontrolle geworfen, um zu versuchen, ein Datenbankproblem zu lösen.Markieren/Aktualisieren von Werten basierend auf anderen Werten in derselben Tabelle

Hintergrund: Diese Website verfügt über eine Upload-Funktion, bei der eine CSV-Datei hochgeladen werden kann (mit einer konsistenten Vorlage) und in eine DB-Tabelle namens "Staging" eingefügt wird. Es gibt einige Spalten, aber im Moment ist es nur ein Tisch. Die Daten werden am Frontend in einer Datentabelle angezeigt, die der Benutzer/Administrator sehen kann.

Diese Person möchte, dass die Datenbank QA/QC-Prüfungen für einige der Daten mit einer MYSQL-Anweisung durchführt, und ich bin mir nicht sicher, wie das geht. Ich denke an eine mögliche UPDATE-Anweisung, aber in beiden Fällen müsste ich dies in einem Trigger nach dem Upload machen, der nicht mit dem tatsächlichen Upload kollidiert.

Als Beispiel dafür, was müsste getan werden:

Einer der Kontrollen gegen zwei Spalten in der Datenbank: ‚lowSideMIUNumberDepart‘ und ‚lowSideMIUNumberArrive‘. Manchmal stimmen die Zahlen in diesen beiden Feldern überein und manchmal nicht. Es gibt eine weitere Spalte mit dem Namen "miu'hat hängt von diesen Spalten ab. Also, wenn die Zahlen übereinstimmen, sollte "miu" "NEIN" sagen und wenn sie anders sind, sollte es "JA" sagen.

Diese JA und NEIN sind bereits in der CSV, aber es muss überprüft werden, um sicherzustellen, dass es richtig ist. Ich muss einen Weg finden, dies zu überprüfen, damit, wenn die Zahlen übereinstimmen, aber 'miu' JA sagt, die Abweichung entweder markiert oder auf den entsprechenden Wert geändert werden kann.

Es gibt andere Probleme wie diese, aber sie alle folgen dieser Art von Muster, so hoffe ich, dass, wenn ich es für einen Satz QA herausfinden, kann ich die gleiche Praxis auf die anderen 7 Sätze anwenden.

Jede Hilfe oder Ideen, um dies zur Arbeit zu bringen, wird sehr geschätzt.

Antwort

1

Werfen Sie einen Blick auf die documenation Auslöser:

Trigger Syntax and Examples

Sie könnten einen Trigger erstellen, die einfach MUI-Updates auf den richtigen Wert auf Einsatz:

CREATE TRIGGER update_miu AFTER INSERT ON staging 
     FOR EACH ROW 
     SET miu = IF(NEW.lowSideMIUNumberArrive = NEW.lowSideMIUNumberDepart,"YES","NO"); 
+0

Also in diesem Beispiel hat es Ja und NEIN, aber ich würde nur die verwenden, die ich möchte, wenn sie gleich sind? – Hunter

+0

Es scheint nicht auf Staging nach dem Einfügen auslösen möchten, aber ich kann neue Werte in eine andere Tabelle verschieben. An meinem anderen Punkt gibt es eine Möglichkeit, den Wert zu kennzeichnen, anstatt ihn zu ersetzen? h., wenn die Zahlen nicht übereinstimmen, könnte ich sie mit einem Symbol oder einer roten Farbe kennzeichnen? – Hunter

Verwandte Themen