powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / CASE несколько параметров
12 сообщений из 12, страница 1 из 1
CASE несколько параметров
    #38431726
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
приветствую
есть проблема с запросом, а именно, в конструкции case (MySQL)

сам запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
UPDATE scupserver.scup_goods SET
ver_sagi =
CASE
WHEN barcode = 2104434 THEN 101
WHEN barcode = 2104434 THEN 1640
END
WHERE barcode IN (2104434,2104434)



хотел заменить на такой, но обновляет еще и строку groupid
Код: sql
1.
2.
3.
4.
5.
6.
7.
UPDATE scupserver.scup_goods SET
ver_sagi =
CASE
WHEN barcode = 2104434 AND groupid = 21490013 THEN 101
WHEN barcode = 2104434 AND groupid = 21490023 THEN 1640
END
WHERE barcode IN (2104434,2104434)



помогите, кто сталкивался
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431761
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kristoferruotsi
Код: sql
1.
2.
WHEN barcode = 2104434 THEN 101
WHEN barcode = 2104434 THEN 1640


Интересно, скоро обнаружится, что barcode не может стать 1640 в принципе?
kristoferruotsiобновляет еще и строку groupidНе верю.
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431774
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне нужно обновить ver_sagi на 101
где barcode = 2104434 и groupid = 21490013

и
мне нужно обновить ver_sagi на 1640
где barcode = 2104434 и groupid = 21490023

само поле barcode в запросе не изменится

во втором варианте который в первом посте, поле groupid действительно меняется
для двух строк оно становится одинаковым, а должно оставаться неотредактированным как и barcode
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431776
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и? второй запрос верен... до секции WHERE. А её тоже надо корректировать.
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431783
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
использовал запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
UPDATE scupserver.scup_goods SET
ver_sagi =
CASE
WHEN (barcode = 2104434 AND groupid = 21490013) THEN 101
WHEN (barcode = 2104434 AND groupid = 21490023) THEN 1640
END
WHERE barcode IN (2104434)



на картинке в аттаче
первый вариант - до
второй - после
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431788
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это по поводу второго поста
а по поводу секции WHERE - поясните, будьте добры, не сталкивался
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431828
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, попробовал на голой тестовой таблице
все гуд
походу с индексами намудрил
спасибо
кстати, после WHERE ничего не менял
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431871
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kristoferruotsi
Код: sql
1.
2.
3.
4.
WHEN (barcode = 2104434 AND groupid = 21490013) THEN 101
WHEN (barcode = 2104434 AND groupid = 21490023) THEN 1640
END
WHERE barcode IN (2104434)

Код: sql
1.
2.
3.
4.
WHEN (barcode = 2104434 AND groupid = 21490013) THEN 101
WHEN (barcode = 2104434 AND groupid = 21490023) THEN 1640
END
WHERE (barcode,groupid) IN ((2104434,21490013),(21490013,21490023))
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38431953
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kristoferruotsiкстати, после WHERE ничего не менял
Очень плохо.
Попробуйте ввести третью запись, где barcode = 2104434, а вот groupid - не из списка.
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38435283
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня таких случаев не предусмотрено
но приму к сведению, и попробую перебомбить свой запрос
спасибо
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38435473
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kristoferruotsiу меня таких случаев не предусмотреноЖизнь богаче фантазии. Лучше ВСЕГДА в CASE делать секцию ELSE.
...
Рейтинг: 0 / 0
CASE несколько параметров
    #38435497
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
UPDATE scupserver.scup_goods 
SET ver_sagi = if(groupid=21490013, 101, 1640)
WHERE barcode = 2104434 and groupid in (21490013,21490023);
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / CASE несколько параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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