powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как обновить одним запросом несколько строк?
10 сообщений из 10, страница 1 из 1
Как обновить одним запросом несколько строк?
    #39569593
jtag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Имеется к примеру три строки:
Код: sql
1.
2.
3.
4.
id, surname, name;
1, Иванов, Иван;
2, Петров, Петр;
3, Сидоров, Сидр;



Как их можно обновить за один раз с помощью update? (вместо иван - петр, вместо петр-сидр, вместо сидр - иван)
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39569602
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае разумнее соответствия для замены внести во временную таблицу и выполнить многотабличное обновление, связав таблицы надлежащим образом:

Код: sql
1.
2.
3.
UPDATE datatable d, temptable t
SET d.name = t.newname
WHERE d.name = t.oldname
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39569611
jtag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли сделать обновление без временной таблицы, подготовить массив данных на сервере, потом создать строку запроса типа "UPDATE table1 SET name='Иван11111', name='Петр22222', name=Сидр33333' WHERE id=1, id=2, id=3" ???
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39569639
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UPDATE datatable
SET name = ELT(FIELD(name,'Иван','Петр','Сидр'),'Петр','Сидр','Иван')
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39570125
jtag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как же ничего не понятно, не могли бы разжевать по подробнее и с привязкой к id ? =)
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39570173
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jtag,
а прочитать про функции ELT и FIELD влом?
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39571997
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, я про функции ELD и FIELD почитал, там сказано про работу с буквально последовательными индексами. А есть возможность более широкого применения этих функций, не для id=1,2,3 а для id=100, 10348, 45677?
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39572035
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormotне для id=1,2,3 а для id=100, 10348, 45677?Да у меня там вообще не числа! и ничего, работает...
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39572270
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно...

Надо получше вникнуть в эти функции. Пока что-то не уложилось до конца в голове как их использовать.
...
Рейтинг: 0 / 0
Как обновить одним запросом несколько строк?
    #39572297
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormotНадо получше вникнуть в эти функции. Пока что-то не уложилось до конца в голове как их использовать.всё просто
SET name = ELT(FIELD(name,'Иван','Петр','Сидр'),'Петр','Сидр','Иван')

FIELD(name,'Иван','Петр','Сидр') для текущей записи берёт значение из поля name, ищет совпадение в списке 'Иван','Петр','Сидр' -если соответствие есть - возвращает индекс.
ELT по этому индексу берёт в своём списке 'Петр','Сидр','Иван'
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как обновить одним запросом несколько строк?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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