2013-12-03 3 views
-1
Database

MYSQL:TINYTEXT Расчет в MYSQL

У меня есть поле в таблице COLUMN1 содержат значение цены, но объявлен как TINYTEXT.

Мне нужно умножить цену на 100, но я выбрал это значение, значение не будет.

Я попробовал оба варианта ниже.

SELECT CAST(Column1 as UNSIGNED) * 100 

    SELECT CAST(Column1 as SIGNED) * 100  

TINYTEXT Примеры данных

$19.99  
$11.99 

сво Dolloar знак ($ 19,99, а иногда значение не присутствует в этом столбце. С уважением Викрам.

+1

Покажите нам все варианты текста, которые вы можете найти там. У них есть знак доллара, запятые, периоды и т. Д.? –

+0

Я думаю, что 'signed' является модификатором только для типа данных MySQL, а не для самого типа данных. Попробуйте 'cast (col1 as dec (10,2))' для десятичной дроби, с 10 цифрами, из которых две находятся за запятой. – Andomar

+0

Да, это знак Dolloar Sign ($ 19.99, а иногда значение отсутствует в этой колонке. – user2963660

ответ

0

Ну, вам придется обработать в том числе, чтобы очистить данные. Исходя из того, что $19.99 является единственным вариантом, тогда кажется безопасным только заменить знак доллара:

SELECT REPLACE(price, '$', '') * 100 FROM t 

Однако вы должны серьезно подумать о том, чтобы превратить эту колонку в DECIMAL. Таким образом, вы не столкнетесь с ошибкой, когда кто-то добавит знак евро или фунта.