2017-07-19 6 views
0

Ich habe Abfragen erstellt, die mir Änderungen in unserer AD zeigen.MYSQL-Unterabfrage in Felderliste

Sie überprüfen alle gewünschten Felder wie Nachname, Vorname, Ort, Telefonnummer usw. Wenn diese Felder geändert werden, füllt es eine Tabelle namens "Änderungen" durch Einfügen des Feldnamens der Spalte, die geändert wurde, der Alte und New Value and Mail als UID dh

Field | OldValue | NewValue 

LastName | Smith | Peterson 

die Abfrage sollte der Haupttabelle ‚Benutzer‘, sondern nur das Feld aktualisieren, die in der Tabelle ‚Veränderungen‘ mit dem neuen Wert festgestellt wird.

So etwas wie

$sql=$MySQLiconn->query("UPDATE users SET (select Field from changes WHERE id= .$del) = 
(select NewValue from changes WHERE id=".$del WHERE user.Mail = changes.Mail”;) 

Ist so etwas wie dies sogar möglich, mit MySQL?

Antwort

0

Nein. Leider ist es unmöglich in Ihrer Art und Weise. Sie müssen den Spaltennamen vor der UPDATE-Anweisung generieren.

Es wäre besser und schneller in Ihrem Fall.

+0

also kann ich etwas auf der PHP-Seite tun? , um eine Variable festzulegen und den Feldnamen in diese Variable aufzunehmen und dann die Variable in der Aktualisierungsabfrage zu verwenden? – RobertS

+0

Ja, Sie können. Sie müssen Feld von mysql auswählen und in Variable speichern. Und dann können Sie es in Ihrer UPDATE-Abfrage verwenden. – MVG1984