SQL UPDATE funktioniert nicht

Iceman8712

Gesperrt
Hallo Leute

Sorry für die einfache Frage, aber jetzt mache ich entweder einen riesen Fehler oder MYSQL. Schaut euch mal folgendes an:

Ich will in der tabelle t_lager die stueckzahl ändern.

http://www.flyingstorm.ch/pic1.JPG

Wie Ihr sieht ist 'preis' als datentyp 'float' definiert. Jetzt würde ich gerne eine Stückzahl mit der Bedingung preis abändern. Zuerst eine kleine Abfrag:

http://www.flyingstorm.ch/pic2.JPG

also, jetzt möchte ich gerne ein UPDATE machen, aber dies funktioniert nicht.

http://www.flyingstorm.ch/pic3.JPG

Kann mir jemand sagen, wieso das nicht funktioniert?

Ich habe auch schon ausprobiert:

preis = '1.99';
preis = '1,99';
preis = "1.99";
preis = "1,99";
preis = 1.99;
preis = 1,99;

Warum geht das nicht? Also nicht mal mein Berufsschul Lehrer sieht das Problem.

p.s. MYSQL Refernzhandbuch und Google haben wir bereits benützt.

Gruss und danke.
 
Zuletzt bearbeitet:
Hi

Ja mit 'decimal' funktioniert der Befehl:

mysql> UPDATE tbl1 SET name = "Schockolade" WHERE price = 2.99;

So funktioniert das, weiss jemand warum mit float dasselbe nicht funktioniert?

Gruss und vielen Dank!
 
Zuletzt bearbeitet:
Auch herausgefunden habe ich, dass der Operator '=' durch LIKE ersetzt werden kann, dann funktioniert die Abfrage ebenfalls

Das ist so nicht Richtig '=' und Like haben verschiedene Bedeutungen Bei Like kann man sagen In irgendwas enthalten ist Bsp. like 'm%' dann Werden alle Datensätze genohmen die am Anfang ein m enhalten. Im Gegensatzt zu `=`' muß der Wert genau übereinstimmen.
 
Wird kein Metazeichen im Vergeich benutzt, verhalten sich beide meines Wissens nach aber gleich.
 
Wird kein Metazeichen im Vergeich benutzt, verhalten sich beide meines Wissens nach aber gleich

Das mag auf den ersten Blick den Endruck erwecken aber wenn du bei Like nach haus sucht erhälst du auch werte die folgendend heißen können (ha,us,s,a,h,u unsw.) ohne Metazeichen sucht er nur nicht nach werten die davor oder danach stehen.Besteht aber das gesamte wort aus einen Teil der Like suche dann wird es auch aufgelistet sowie das wort ha weil es in haus enthalten ist.


Stell dir mal vor du würde ein Password mit Like prüfen was da alles dann bassieren kann.( Zugang mit falschen Password)
 
Zuletzt bearbeitet:
Das mag auf den ersten Blick den Endruck erwecken aber wenn du bei Like nach haus sucht erhälst du auch werte die folgendend heißen können (ha,us,s,a,h,u unsw.) ohne Metazeichen sucht er nur nicht nach werten die davor oder danach stehen.Besteht aber das gesamte wort aus einen Teil der Like suche dann wird es auch aufgelistet sowie das wort ha weil es in haus enthalten ist.


Stell dir mal vor du würde ein Password mit Like prüfen was da alles dann bassieren kann.( Zugang mit falschen Password)

Kann ich absolut nicht bestätigen:
compare
test varchar(50)

Entries:
h,
a,
u,
s,
ha,
us,
hau,
aus,
haus

Queries:
select test from compare where test LIKE 'haus'
Treffer: haus

select test from compare where test LIKE 'h'
Treffer: h

select test from compare where test LIKE 'hau'
Treffer: hau
 
Zurück