Какой запрос SQL сделать для округления цен до 90?
Здравствуйте. Необходимо все цены на сайте округлить до 90. Допустим, есть такая цена в базе 1354.5000, как ее округлить до 1390.0000? Или есть такая 245664.0000, и эту цену тоже округлить до 245690.0000. Я думаю вы поняли. Гугл не помог или я плохо искал, извините, не нашел. Заранее благодарю.
UPDATE `oc_product_discount` SET `price` = CEIL(price/10)*10 - 10
И изначально я бы написал SELECT запрос с этими условиями, а то мало ли, вам сейчас подскажут - а вы похерите данные в таблице.
Я с коллегами согласен - длинная транзакция - плохо, если у вас часто меняются данные. Если у вас есть нагрузка на приложение - выберите время, когда она минимальна. 20тыс записей в одной транзакции - не смертельно, в принципе, если у вас MySQL, который, по-моему(могу ошибиться, давно с ним не работал), не перестраивает индексы при update(если не изменяется значение из индекса). Если у вас PostgreSQL - он всегда перестраивает индекс, так как обновление записи реализовано как удаление и вставка.
Дмитрий Телепнев, спасибо за ответ. Но запрос срабатывает не всегда. Т.е. он срабатывает, но не всегда цена округляется до 90. По некоторым моментам: 1. Данные меняются не часто, поэтому и необходимо было быстрое решение через SQL. 2. У меня MySQL и там индексы не перестраиваются, с этим все в порядке. В любом случае спасибо.