powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подзапросы
5 сообщений из 5, страница 1 из 1
Подзапросы
    #40078807
Как одним запросом можно обновить все записи в таблице car по условию WHERE

UPDATE car SET state = ? WHERE purchase_datetime > ? AND purchase_datetime < ?
...
Рейтинг: 0 / 0
Подзапросы
    #40078812
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Сысоев
Как одним запросом можно обновить все записи в таблице car по условию WHERE

UPDATE car SET state = ? WHERE purchase_datetime > ? AND purchase_datetime < ?

горазд ты ТС, ТЗ формулировать ...


вообщем, если правильно понял, то "ишщчешь" ты что-то типа этого

Код: sql
1.
2.
3.
4.
5.
UPDATE car SET state = case when purchase_datetime > ? then ? 
                          when purchase_datetime < ? then ?
                          else state
                        end
WHERE purchase_datetime > ? or purchase_datetime < ?
...
Рейтинг: 0 / 0
Подзапросы
    #40078820
court,

Немного не так.
Мне нужно обновить все поля state в значение 'SERVICE1', в пределах дат purchase_datetime


UPDATE car SET state = 'SERVICE1' WHERE purchase_datetime > ? AND purchase_datetime < ?

Вместо знаков вопросов я буду подставлять параметры c помощью JdbcTemplate. Вообщем на Java делаю.

Допустим полей 30 000 +-10 000 (вообщем много), каким образом можно одним запросом это сделать?

Изначально я просто select делал и получал список всех записей и для каждой записи делал update в цикле for each, это долго, нужно одним запросом.
...
Рейтинг: 0 / 0
Подзапросы
    #40078838
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Сысоев, как вы написали, так и надо.
...
Рейтинг: 0 / 0
Подзапросы
    #40078842
Ы2,

И правда, что сработало)

У меня вместо AND - OR было поставлено, мой косяк из-за этого абсолютно все записи в базе обновлялись.

Я изначально подумал про подзапросы наподобие
UPDATE car
SET state = 'SERVICE1'
WHERE purchase_datetime IN (SELECT * FROM car
WHERE purchase_datetime> ? AND purchase_datetime<=? );
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подзапросы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]