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

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

Отзывы ()

Теги:

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

Как поменять кодировку всех таблиц в MySQL базе

Как поменять кодировку всех таблиц в MySQL базе

07.02.2012
А так же, в MODx могут выдаваться ошибки: Cannot modify header information - headers already sent by. Проблема заключается в неверно заданном параметре сравнения вашей БД. К примеру при установке кодировка utf8_general_ci а если зайти в PHP MyAdmin - и зайдете в одну из таблиц, то увидите Сравнение: latin1_swedish_ci

Страница диагностики для сайта от Google

Страница диагностики для сайта от Google

29.11.2011
Если вы обеспокоены положением дел у вашего сайта относительно поисковой системы Google, то вам обязательно пригодятся так называемая страница "Безопасного просмотра. Страница диагностики" для вашего сайта.
Главная - Блог - MySQL - работающие запросы: UPDATE, SELECT c WHERE AND, REPLACE и FORMAT
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.