powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Множественный UPDATE
2 сообщений из 2, страница 1 из 1
Множественный UPDATE
    #39645506
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Будет ли такой множественный UPDATE
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
UPDATE fiscal_sum fs SET
  fs.BeginFiscalSum = 
    CASE fs.FPaymentType
      WHEN 1 THEN 2000
      WHEN 2 THEN 0
      WHEN 3 THEN 500
      -- 
      WHEN 15 THEN 1000
      ELSE 0
    END,
  fs.EndFiscalSum = 
    CASE fs.FPaymentType
      WHEN 1 THEN 2300
      WHEN 2 THEN 0
      WHEN 3 THEN 540
      -- ...
      WHEN 15 THEN 1000
      ELSE 0
    END
WHERE fs.CheckId = 10000;


работать быстрее нескольких одиночных
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
UPDATE fiscal_sum fs SET
  fs.BeginFiscalSum = 2000, fs.EndFiscalSum = 2300
WHERE fs.CheckId = 10000 AND fs.FPaymentType = 1;

UPDATE fiscal_sum fs SET
  fs.BeginFiscalSum = 0, fs.EndFiscalSum = 0
WHERE fs.CheckId = 10000 AND fs.FPaymentType = 2;

UPDATE fiscal_sum fs SET
  fs.BeginFiscalSum = 500, fs.EndFiscalSum = 540
WHERE fs.CheckId = 10000 AND fs.FPaymentType = 3;

UPDATE fiscal_sum fs SET
  fs.BeginFiscalSum = 0, fs.EndFiscalSum = 0
WHERE fs.CheckId = 10000 AND fs.FPaymentType = 4;

-- FPaymentType  5..15

UPDATE fiscal_sum fs SET
  fs.BeginFiscalSum = 0, fs.EndFiscalSum = 0
WHERE fs.CheckId = 10000 AND fs.FPaymentType = 16;


?

В таблице порядка 100тыс. записей, первичный ключ CheckId + FPaymentType.
...
Рейтинг: 0 / 0
Множественный UPDATE
    #39645534
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он будет однозначно быстрее. Раз эдак в 15...
А для красоты вообще можете задействовать
Код: sql
1.
2.
3.
UPDATE fiscal_sum fs SET
  fs.BeginFiscalSum = ELT(fs.FPaymentType, 2000, 0, 500, ..., 1000, 0)
, ...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Множественный UPDATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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