Ich vermute eher, dass Du durch eine Typumwandlung das Problem erst erzeugt hast. Bitte poste daher Dein SQL-Statement.
Mein SQL-Statement:
"SELECT IF(@a:=LOCATE('|', preis), LEFT(preis, @a - 1), preis) AS Preis FROM kategorien WHERE kat_code REGEXP '^$kat_code.*' AND preis!='' ORDER BY preis"