MySQL 5.5.8 Update Befehl arbeitet nicht mit Cast zusammen

Vandroiy

Mitglied
Hallo Forum,

ich ärger mich jetzt schon seit einer geraumen Zeit wegen einem Updatebefehl der mir einer Fehlermeldung liefert.

Hier mal meine Statement
SQL:
Update table
set new_name=left(name,length(cast("5a" as unsigned integer))) 
where table_id='3695'

Und hier bekomme ich die Fehlermeldung
Code:
Error Code: 1292. Truncated incorrect INTEGER value: '5a'

Noch als Hinweis die Spalte new_name ist varchar(64) wie die Spalte name.

Freue mich auf jede Idee.
 
Guten Morgen,

hab was neues Herrausgefunden und wollte euch die Info nicht vorenthalten. Wenn ich mein Update mit einen Select ausführe bekomme ich keine Fehlermeldung aber dafür eine Warnung die den selben Kontext beinhaltet wie die Fehlermeldung.

SQL:
Select *,
  LEFT(name,LENGTH(CAST("5a" AS UNSIGNED INTEGER))) as new_name
from table
WHERE table_id='3695';
Show warnings;

Bleibt die Frage troztem im Raum, wieso er mir bei einen Update einen Fehlermeldung zurück gibt und das ganze nicht Aktualisiert.
 
Hallo Forum,

hab es geschaft, mein Update Funktioniert mit Cast. Um ein Cast wie ich es möchte auszuführen darf die Umwandlung nicht direkt in integer erfolgen sondern muss vorher in Decimal gewandelt werden. Das ganze sieht dann so aus.

SQL:
UPDATE TABLE
SET new_name=LEFT(name, LENGTH(CAST(Cast( "5a"  as Decimal(3,0))  AS SIGNED INTEGER))) 
WHERE table_id='3695'

Grüße und viel Spaß euch noch.
 

Neue Beiträge

Zurück