Web-Gate
где заказать сайт +1 (510) 491 89 19
Пн - Вс: 10 00 - 19 00
Профессиональное продвижение сайтов — поисковая оптимизация,
раскрутка сайта, разработка и создание сайта

MySQL - работающие запросы: UPDATE, SELECT c WHERE AND, REPLACE и FORMAT

Отзывы ()

Теги:

Рекомендуйте нас:

Событие jquery radio checked + img src replace


24.04.2014
Нужно было сделать "переключалку" картинки, при выборе определенных radio элемента. Получилось сделать это используя библиотеку jquery-1.10.1.js

Как найти работу за границей. Основные правила и рекомендации новичкам в чужой стране


06.10.2015
Перемены случаются в жизни каждого человека. Некоторые – спонтанно, прочие – осознанный личный выбор. Часто последние связаны со сменой места жительства или работы. Именно такой категории посвящается данная статья. Она будет основана на материалах вебинара с Михаилом Портновым по поиску работы за границей.
14.08.2014

Как всегда, когда самому что то нужно - ответа готового не найти. Понадобилась массовое обновление цен на сайте, а товаров не мало 920. Поднять цены на 10%. Поле где хранится цена типа STRING, а некоторые цены имеют дробную часть отделенную запятой :) Т.е. если умножать - запятая не будет воспринята. Да и еще некоторые цены записаны с пробелом, например "20 340" - если это на что то умножить результат тоже будет не верным. Цель была такая:

  1. Заменить все запятые в поле (столбике) одной таблицы MySQL по заданному двойному условию на точки
  2. Убрать все пробелы по тому же условию
  3. Перемножить все это на 1.1
  4. Округлить до двух чисел после запятой

Отображаем нужные нам поля, по заданному одному условию

SELECT * FROM `var_contentvalues` WHERE tmplvarid in (10);

т.е. показать "все" поля (столбики) из таблицы var_contentvalues где в столбике tmplvarid значение равно 10. Это нам выведет таблицу var_contentvalues но только те строки, у которых в столбике tmplvarid стоит 10.

Результат этой команды будет выглядеть примерно так

id tmplvarid name value huyalue putinloh
2 10 Vasja 500 bla bla da
67 10 Petja Vatnik 4 000 bla net
9 10 Lena 987,5 bla da

Замена с помощью UPDATE значений в MySQL - запятых на точки по двойному условию WHERE AND

UPDATE `var_contentvalues` 
SET value = REPLACE(value, ',', '.') 
WHERE `tmplvarid` = '10'  
AND 
`value` LIKE '%,%';

Т.е.
1. строка: изменить таблицу var_contentvalues 
2. строка
: заменить значение в столбике value на тот же самый value, но модифицированный с помощью команды RELACE, который заменит запятую ',' на  точку'.'
3. строка: для строк, у которых поле tmplvarid равно 10
4 и 5 строка: и еще в этих строках в столбике value должна присутствовать запятая, окруженная все равно чем (знак %)

Умножаем числа в БД MySQL - по заданному одному условию

UPDATE `var_contentvalues`
SET value = value * 1.1
WHERE `tmplvarid` = '10';

Все строки уже разобрали, кроме 2-й строки, она значит: записать в поле  value значение value только умноженное на 1.1

Только если у вас это цены - нужно будет округлить до сотых.

Умножаем числа в БД MySQL - по заданному одному условию - и округляем до двух значений после запятой

UPDATE `var_contentvalues`
SET value = FORMAT(value * 1.1,2)
WHERE `tmplvarid` = '10';

Все строки уже разобрали, кроме 2-й строки, она значит: записать в поле value значение value умноженное на 1.1 - при этом отформатировав значение до двух знаков после запятой FORMAT(значение/поле/выражение,n-знаков после запятой)

Спонсор статьи:
Септики для загородного дома - оборудование которое поможет вам осуществлять предварительную очистку сточных вод, и тем самым защитит окружающую среду!

Убираем пробелы в полях БД MySQL - с двумя условиями WHERE AND

UPDATE `var_contentvalues`
SET value = REPLACE(value, '\ ', '')
WHERE `tmplvarid` = '10'
AND
`value` LIKE '%\ %';

Здесь все разбирали кроме того что если вы хотите как либо обозначить ПРОБЕЛ при поиске или замене то нужно перед пробелом поставить "\"

Во всем этом НЕРЕАЛЬНО помогает разбираться - предварительная проверка синтаксиса http://www.piliapp.com/mysql-syntax-check/  - главное разбивайте ваши команды на много строк - тогда будет понятнее где ошибка.

Отзывы (0)


ОтменитьДобавить комментарий

La composante principale de Levitra est Vardenafil. Ce médicament est utilisé pour traiter le dysfonction érectile (l'impuissance) chez les hommes et pour le traitement d'hypertension artérielle pulmonaire. Levitra affecte la réponse à la stimulation sexuelle et améliore l'érection https://pharmacie-hommes.fr. Le médicament agit pendant 36 heures.