2017-04-08 8 views
-4

Ich habe eine Tabelle namens "tbl_settings".Wie mehrere Zeilen in der gleichen Mysql-Tabelle zu aktualisieren

Ich habe 4 Spalten: ID, Name, Wert, Beschreibung.

Ich habe ein HTML-Formular mit einem Textfeld für jede Einstellung.

Nach dem Senden möchte ich jeden Einstellungswert basierend auf dem Namen der Einstellung aktualisieren.

Als Referenz sind meine Einstellungsnamen für einige Zeilen: site_title, site_title_description, contact_name.

Ich brauche Hilfe herauszufinden, die beste Methode, um alle Zeilen mit dem jeweiligen Wert basierend auf dem Namen der Zeile zu aktualisieren.

Ich schreibe dies auf meinem Handy und habe derzeit keinen Code mit mir, also bitte nur eine allgemeine Idee zu der Abfrage, die ich ausführen muss.

+0

https: // dev .mysql.com/doc/refman/5.7/en/update.html – RiggsFolly

+1

Was hast du probiert? Im Allgemeinen würden Sie für jedes gegebene individuelle Update (jede eindeutige Kombination von (1) Bezeichnern für die Zeilen zum Ziel und (2) Werte, die in diesen Zeilen gesetzt werden) einen "UPDATE" -Befehl an die Datenbank ausgeben. – David

+0

Ein Update mit einer WHERE-Klausel für die Textübereinstimmung würde es tun. 'update table set name = 'neuer Site-Titel' wobei name = 'site_title' 'jede Zeile mit dem' name', da 'site_title' auf' new site title' zurückgesetzt wird. – chris85

Antwort

1
UPDATE tbl_settings 
SET value = 'new title' 
WHERE name = 'site_title' 

Das wird die alle site_title Zeilen ändern value = 'new title' zu haben. Die WHERE-Klausel kann dieselben Bedingungen verwenden, die Sie in einer Abfrage SELECT verwenden würden, um die Zeilen anzuzeigen, die Sie aktualisieren möchten.

Wenn Sie differentt Werte basierend auf einem anderen Zustand zuweisen möchten, können Sie einen CASE Ausdruck verwenden:

UPDATE tbl_settings 
SET value = CASE 
    WHEN condition1 THEN 'new title 1' 
    WHEN condition2 THEN 'new title 2' 
    WHEN condition3 THEN 'new title 3' 
END 
WHERE name = 'site_title' 
AND (condition1 OR condition2 OR condition3) 

Oder vielleicht ist es das, was Sie wollen:

UPDATE tbl_settings 
SET value = CASE name 
    WHEN 'site_title' THEN 'new title' 
    WHEN 'site_title_description' THEN 'new description' 
    WHEN 'contact_name' THEN 'new contact name' 
END 
WHERE name in ('site_title', 'site_title_description', 'contact_name') 
+0

Ich muss mehrere Zeilen mit verschiedenen Werten aktualisieren. – MktCloud

+0

Sie sollten es in der Frage klarer erklären. Wie bestimmen Sie, welche Zeilen mit welchen Werten aktualisiert werden sollen? – Barmar

+0

Entschuldigung. Ich poste gerade von meinem Telefon und bin gerade vom Computer weg. Ich habe versucht, die Fall-Funktion, um jede Zeile zu aktualisieren, aber das funktioniert nicht. – MktCloud

Verwandte Themen