eliasum
@eliasum
cd ..

Как обновить несколько строк одним запросом MS SQL?

Здравствуйте! Есть таблица с двумя строчками:
5e89e5addc26c220217639.jpeg
Мне нужно обновить или одну строку или обе одновременно, причем в каждом случае поля Lat и Lng обновляются вместе. Написал запрос:

INSERT INTO MyGMap (id, Lat, Lng) VALUES (1,'1','2'), (2,'3','4') ON DUPLICATE KEY UPDATE id = VALUES(id), Lat=VALUES(Lat), Lng=VALUES(Lng)

Выдает ошибку, что "неверный синтаксис около ON", а так же подчеркивает VALUES, id, Lat и Lng. Подскажите, что неправильно?
  • Вопрос задан
  • 5783 просмотра
Решения вопроса 1
tsklab
@tsklab Куратор тега Transact-SQL
Здесь отвечаю на вопросы.
UPDATE Markers
SET Lat = CASE ID WHEN 1 THEN '1' WHEN 2 THEN '3' END,
    Lng = CASE ID WHEN 1 THEN '2' WHEN 2 THEN '4' END
WHERE ID IN (1, 2)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Обновить?
UPDATE MyGMap
SET Lat = '1', Lng = '2'
WHERE Id IN (1, 2);

Или добавить?
INSERT INTO MyGMap (Lat, Lng)
VALUES ('1', '2'), ('3', '4');


UPD:
UPDATE MyGMap as row_1 INNER JOIN MyGMap as row_2
ON
	row_1.id = 1 AND
	row_2.id = 2
SET
	row_1.Lat = '1',
	row_1.Lng = '2',
	row_2.Lat = '3',
	row_3.Lng = '4';
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы