2017-05-30 11 views
-1

Ich möchte eine Zeile in einer Datenbank aktualisieren, aber ich möchte, dass sie nicht aktualisiert wird, wenn der Wert bereits existiert.Aktualisierung in eine MySQL-Tabelle, wenn der gleiche Wert bereits existiert

Zum Beispiel:

UPDATE religion SET 
     name='3' 
     WHERE id=4 
     AND id NOT IN(SELECT id FROM religion); 

Jede mögliche Anleitung geschätzt würde.

Bearbeiten: Ich habe versucht, Datenvalidierung zu tun. Ich wollte es so machen, dass die Tabelle nicht aktualisiert wird, wenn der eingegebene Wert bereits in der Tabelle existiert.

+0

Es ist sehr unklar, was Ihr Versuch – Jens

+0

'UPDATE Religion SET name = '3' WHERE id = 4 AND name = '3' achive!; 'Willst du das? –

+0

Sie müssen hier Ihr Ziel klären. Ihre Beispielabfrage versucht, nur Zeilen zu aktualisieren, die nicht in der Tabelle vorhanden sind. Was keinen Sinn ergibt. Versuchen Sie, der Tabelle eine neue Zeile hinzuzufügen? In diesem Fall verwenden Sie "Einfügen". –

Antwort

0

Ich denke, Sie sind nach einer Insert-Anweisung keine Update-Anweisung. Weil Sie eine Zeile nicht aktualisieren können, wenn sie nicht existiert. So würde ich denken, dass Sie etwas tun können:

INSERT INTO religion 
(
    id, 
    name 
) 
SELECT 
    tbl.Id, 
    tbl.`name` 
FROM 
    (
     SELECT 4 as Id, '3' as name 
    ) as tbl 
WHERE NOT EXISTS(SELECT NULL FROM religion WHERE religion.id=tbl.Id); 
1

UPDATE Religion SET name = '3' WHERE id = 4 und name = "";

0

sollte diese Arbeit: UPDATE religion SET name='3' WHERE id=4 AND name!='3'; Hier ist eine einfache Erklärung: Wenn die ID 4 und der Name bis 3, Update nicht gleich gleich ist. Das funktioniert.

Verwandte Themen