Aktualisierungsabfrage OO Base & MySQL

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Aktualisierungsabfrage OO Base & MySQL

Re: Aktualisierungsabfrage OO Base & MySQL

von DPunch » Sa, 19.02.2011 08:26

Aloha

Code: Alles auswählen

UPDATE mitarbeiter SET bewertung = 1 WHERE bewertung = NULL
In SQL fragt man nicht auf "gleich Null" ab.
Null ist kein wirklicher Wert, sondern eher ein Zustand, daher können Spalten, die Null-"Werte" enthalten, auch nie mit logischen Operatoren wie "=",">","<" etc erfasst werden.

Die korrekte Syntax dafür ist

Code: Alles auswählen

UPDATE mitarbeiter SET bewertung = 1 WHERE bewertung IS NULL
Reginald hat geschrieben:Bei nem String-Feld geht das hier:

Code: Alles auswählen

UPDATE mitarbeiter SET bewertung = '1' WHERE bewertung = ''
Das wundert mich - wenn das String-Feld nie einen Inhalt hatte, kann eigentlich auch bei dieser Anweisung nichts passieren.

Re: Aktualisierungsabfrage OO Base & MySQL

von komma4 » Sa, 19.02.2011 04:59

ungetestet:

Code: Alles auswählen

UPDATE `mitarbeiter` SET `bewertung` = 1 WHERE `bewertung` NOT > 0


(Die MySQL-Dokumentation verwendet die backticks - Feldnamen sind case-sensitive!)

Hilft Dir das?

Aktualisierungsabfrage OO Base & MySQL

von Reginald » Sa, 19.02.2011 01:06

Wie kann ich mit einer SQL-Abfrage in einer auf Linux gehosteten mysql 5.1 Datenbank ein Feld vom Typ SmallInteger updaten: Es sind bisher entweder die Werte „1“ oder „2“ drin und ich habe rund 1000 leere Felder, die ich mit „1“ befüllen will.

Bei nem String-Feld geht das hier:

Code: Alles auswählen

UPDATE mitarbeiter SET bewertung = '1' WHERE bewertung = ''
Klappt aber nicht bei dem Small-Integer-Feld. Diese hier gehen auch nicht:

Code: Alles auswählen

UPDATE mitarbeiter SET bewertung = 1 WHERE bewertung = ''  
UPDATE mitarbeiter SET bewertung = 1 WHERE bewertung = NULL
UPDATE mitarbeiter SET bewertung = 1 WHERE bewertung = ""
UPDATE mitarbeiter SET bewertung = 1 WHERE bewertung = 0
Irgendwie scheint der das leere Feld noch anders zu behandeln.

Ideen??

Grüße
Reg

Nach oben