Space Base Space Base
+7 928 008-80-89
ru
  • en
  • es
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  1. Библиотека
  2. SQL
  3. Обновление нескольких записей разными данными значениями в SQL
logo

Обновление нескольких записей разными данными значениями в SQL

19.12.2017

Тема данной статьи подсказана посетителем сайта, за что огромное вам спасибо, Василий.

Итак, задача заключается в том, чтобы реализовать SQL запрос, который будет менять данные сразу в нескольких строках таблицы. Если не принимать во внимание то, что значение для каждой строки могут быть разными, то можно выполнить простой запрос на обновление:

UPDATE goods SET price = 150 WHERE num = 2 OR num = 3;

или:

UPDATE goods SET price = 150 WHERE num IN (2, 3);

В этих случаях, в двух строках поля price будет внесено одинаковое значение 150. Нам же необходимо, внести в таблицу разные значения.

Для множественного выбора, во многих языках программирования имеется конструкция CASE. Именно оно подходит, для одного из наиболее простых решений нашей задачи:

UPDATE goods SET price = CASE num
  WHEN 1 THEN 500
  WHEN 2 THEN 600
  …
  ELSE price END

Первая строка запроса содержит указание на обновляемую таблицу (goods). Затем указывается поле, которому будет присваиваться новое значение, после чего начинается конструкция CASE. В ней задается поле (num), по которому определяется изменяемая строка.

Вторая и третья строки содержат указание на новые значения цены (500, 600) которые следует вносить в таблицу, в зависимости от номера строки (значения num - 1,2).

Последняя строка завершает конструкцию CASE, где после ELSE, снова указано изменяемое поле. Это сохранит записи, которые не вошли в список, без изменения.

Другие материалы:

Сортировка данных в SQL (ORDER BY)


Условия отбора в запросе SQL (WHERE)


SQL запросы на выборку (SELECT)


Написать комментарий

Комментарии

В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.


коммент.

avatar

akyl91

- 24 сентября 2023, 23:59 ↓
Спасибо!
«num IN (2, 3)» — то что искал!

Разработка сайтов

Корпоративный сайт
Интернет-магазин
Лендинг - одностраничный сайт
Сайт-визитка
Сайт-портфолио

Проектирование

Прототип, UX-дизайн

Дизайн

UI-дизайн
Логотип

+54 911 2801-4950

info@space-base.net
+7 928 008-80-89

Web-сайты для успешного бизнеса

Web-сайты для успешного бизнеса

Главная Услуги Портфолио События Библиотека Контакты
+7 928 008-80-89 Меню
Политика в отношении обработки персональных данных © Copyright 2014 - | Space-Base

Лучшее время начать свой проект - Сейчас!

Выбраны опции:

Отправить сообщение на:

Telegram WhatsApp

Отправляя сообщение, вы даете свое согласие на
обработку песональных данных