Обновить столбец базы данных MySQL, чтобы округлить все значения до 2 десятичных знаков.MySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Обновить столбец базы данных MySQL, чтобы округлить все значения до 2 десятичных знаков.

Сообщение Anonymous »

У меня есть база данных MySQL из 5000 продуктов, импортированных из Excel некоторое время назад. К сожалению, Excel усекает значения с помощью нулей, поэтому они были импортированы в колонку цены в сочетании значений с 0, 1, 2 или (иногда) большим количеством десятичных знаков. Некоторые продукты не имеют цены, и мне нужно оставаться таким (£ CLASE FOR PRICE). < /P>
Я хочу очистить столбец цены и заставить все значения храниться в базе данных до 2 DP. Сам столбец - это варчар, и нет, я не могу изменить столбец на десятичный (10,2);) < /p>
Легко, подумал я. Мой тест: < /p>

Код: Выделить всё

SELECT ID, Price, ROUND(Price, 2) as Fixed
FROM table
WHERE Price REGEXP '[0-9]+.?[0-9]*'
< /code>
output: < /p>
ID      Price   Fixed
1001332 60.31   60.31
1001334 66      66.00
1001336 32.2879 32.29
1001338 66      66.00
1001340 42.2    42.20
1001342 42.2    42.20
1001344 42.2    42.20
1001346 42.2    42.20
1001348 29.54   29.54
1001350 31.07   31.07
...
< /code>
Поэтому я решил, что позволю ему разорвать: < /p>
UPDATE table
SET Price = ROUND(Price, 2)
WHERE Price REGEXP '[0-9]+.?[0-9]*'
< /code>
output:
0 Ошибки. 0 затронутых строк. < /P>
Я попробовал несколько других вариантов: < /p>
UPDATE table
SET Price = ROUND(Price, 2)
WHERE Price  ""
< /code>
output:
0 Ошибки. 0 рядов затронуты. < /P>
UPDATE table
SET Price = ROUND(Price, 2)
WHERE 1
< /code>
Вывод:
Усеченное неверное двойное значение: ''
(из -за этих пустых значений) < /p>
мне нужна подпрограмма?UPDATE table AS t1
SET Price = (
SELECT ROUND(Price, 2)
FROM table AS t2
WHERE t1.ID = t2.ID
)
WHERE Price REGEXP '[0-9]+.?[0-9]*'
(я не осмелился запустить, что в случае, если он не соответствует строкам правильно, и разворачивает базу данных!) измучен в этот момент ...

Подробнее здесь: https://stackoverflow.com/questions/797 ... mal-places
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как округлить число до n десятичных знаков в Java
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Округлить до 2 десятичных знаков в Python
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как мне заставить Json parse_float=decimal.Decimal округлить число до двух десятичных знаков?
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Строка формата C#: как показать или ноль десятичных знаков, или два десятичных знака?
    Anonymous » » в форуме C#
    0 Ответы
    91 Просмотры
    Последнее сообщение Anonymous
  • Строка формата C#: как показать или ноль десятичных знаков, или два десятичных знака?
    Гость » » в форуме C#
    0 Ответы
    60 Просмотры
    Последнее сообщение Гость

Вернуться в «MySql»