Ich habe diese Abfrage, die funktioniert...
UPDATE `contacts`
SET `calls_to`=`calls_to`+1
WHERE `contact_no` = '0412345678';
Außerdem möchte ich dem Kostenfeld einen Wert hinzufügen. Nach meinem Verständnis wäre der Weg, dies zu tun ...
UPDATE `contacts`
SET `calls_to` = `calls_to`+1,
`cost_to` = `cost_to`+0.25
WHERE `contact_no`='0412345678';
Da ich hier schreibe, funktioniert es natürlich nicht so, wie ich es erwarten würde.
--UPDATE--
Wie gewünscht, die Tabellenstruktur
id int(255) auto_increment
contact_owner varchar(255)
contact_no varchar(11)
contact_name varchar(255)
calls_to int(255)
txts_to int(255)
time_talked_to int(255)
cost_to decimal(65,2)
0 Stimmen
Was geschieht hier? Die Abfrage sieht gut aus.
0 Stimmen
Können Sie Ihr Datenbankschema veröffentlichen? Könnten Sie auch das Ergebnis von
SELECT * FROM contacts WHERE contact_no='0412345678'
? Nebenbei bemerkt, halte ich es für eine gute Praxis, immer eineLIMIT 1
für Aktualisierungen, von denen Sie nicht erwarten, dass sie mehr als 1 Zeile betreffen :)0 Stimmen
@mdma: Meine Vermutung ist, dass die
cost_to
ist ein INT-Datentyp, so dass die in UPDATE hinzugefügte Dezimalzahl abgeschnitten wird. Ich wüsste nicht, was es sonst sein könnte. ...und Ihre Antwort war also nicht da.0 Stimmen
@OMG - Stimmt - ich hatte schon vor Ihrem Kommentar geantwortet!
0 Stimmen
@OMG - Ich hätte wissen müssen, dass mich das schnelle Rückwärtslaufen eines Tages in Schwierigkeiten bringen würde... (habe den Kommentar wirklich nicht gesehen. Ich glaube, ich habe schon vorher gepostet, aber danach noch ein paar Tippfehler gemacht, die jetzt nicht mehr als separate Editierungen angezeigt werden).
0 Stimmen
@mdma: Du sollst eine Schleuder benutzen, die um die Sonne kreist, und durchsichtiges Aluminium! Kinder heutzutage...