Возможно ли это все преобразовать к числовому виду, чтобы потом использовать в условии WHERE?
Спустя 5 минут, 21 секунда (12.01.2007 - 17:53) Ghost написал(а):
Спустя 6 дней, 15 часов, 28 минут, 20 секунд (19.01.2007 - 09:22) Alek86 написал(а):
а разве SQL не без разницы, текст с числом или число?
Спустя 1 час, 56 минут, 48 секунд (19.01.2007 - 11:18) pavel написал(а):
QUOTE(Alek86)
а разве SQL не без разницы, текст с числом или число?
Нет, конечно, если речь идет, напримнр, о сортировке или выборке по условию where
QUOTE
http://phpclub.ru/mysql/doc/cast-functions.html
В том то и дело, что одними преобразованиями типов не отделаешься - в сообщении есть пробел!
Решается с помощью REPLACE
SELECT (CAST(REPLACE(price,' ','') AS SIGNED) as price FROM mytable
Но, при этом теряется десятичная часть числа, т.к. CAST может преобразовать только в целое
Спустя 26 минут, 54 секунды (19.01.2007 - 11:45) Ghost написал(а):
QUOTE
mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);
-> -1
Следует учитывать, что если один из операндов представлен величиной с плавающей точкой (в данном контексте DECIMAL() рассматривается как величина с плавающей точкой), результат также является величиной с плавающей точкой и не подчиняется вышеприведенному правилу приведения.
mysql> SELECT CAST(1 AS UNSIGNED) -2.0
-> -1.0
-> -1
Следует учитывать, что если один из операндов представлен величиной с плавающей точкой (в данном контексте DECIMAL() рассматривается как величина с плавающей точкой), результат также является величиной с плавающей точкой и не подчиняется вышеприведенному правилу приведения.
mysql> SELECT CAST(1 AS UNSIGNED) -2.0
-> -1.0
_____________