Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Числовые типы данных.
 
 автор: Gandzas   (19.11.2006 в 03:13)   письмо автору
 
 

В БД есть столбец только с цифрами.
Сейчас его тип текстовый, но хочется его сделать числовым.

Данные: только положительные числа от 0 до максимум 999999. Также это может быть значение с запятой. Например, 15,6. Количесвто знаков после запятой - 1.

Вопросы:
1. Какой лучше поставить тип данных. (double, float ...)?
2. Насколько я поняла данные будут храниться/выводиться с точкой, а мне нужен вывод с запятой. Это возможно?
3. Сейчас в этом столбце (текст) есть значения целые и дробные. Причем, некоторые дробные с точкой, а некоторые с запятой. Что будет, если я просто поменяю тип столбца, не "испортяться" ли данные?
4. Каким запросом можно поменять все точки на запятые в уже внесенных в БД данных.

Спасибо. :)

   
 
 автор: cheops   (19.11.2006 в 12:14)   письмо автору
 
   для: Gandzas   (19.11.2006 в 03:13)
 

1. Если у вас лишь один знак после запятой, то лучше использовать DECIMAL
2. Формат числа можно будет менять при выводе, например, средствами PHP
3. Скорее всего испортится, лучше всё привести сначала к точке (в любом случае все запросы лучше сначала проверить на копии таблицы).
4. Здесь лучше воспользовать встроенной функцией REPLACE
UPDATE tbl SET field = REPLACE(field, '.', ',')

   
 
 автор: Gandzas   (19.11.2006 в 15:45)   письмо автору
 
   для: cheops   (19.11.2006 в 12:14)
 

Спасибо!

   
 
 автор: Trianon   (19.11.2006 в 14:55)   письмо автору
 
   для: Gandzas   (19.11.2006 в 03:13)
 

Если Вы хотите делать какие-то арифметические операции с этими величинами или даже просто сравнивать их, то хранить придется с точкой, а не с запятой.
При выводе в HTML точку на запятую можно и поменять.

echo str_replace('.', ',',  "$value");

   
 
 автор: Gandzas   (19.11.2006 в 15:45)   письмо автору
 
   для: Trianon   (19.11.2006 в 14:55)
 

Пока не хочу. Но, как показывает практика, лучше сразу использовать все возможности MySQL, даже если они не нужны, чем потом переделывать :) Спасибо. Сейчас разберусь с регулярными выражениями и побегу пробовать :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования