Несколько обновлений в MySQL

363
задан Taryn 25 June 2013 в 09:03
поделиться

6 ответов

Да, это возможно - можно использовать, ВСТАВЛЯЮТ... НА ДУБЛИРУЮЩЕМСЯ КЛЮЧЕВОМ ОБНОВЛЕНИИ.

Используя Ваш пример:

INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
615
ответ дан Michiel de Mare 23 November 2019 в 00:11
поделиться
UPDATE tableName SET col1='000' WHERE id='3' OR id='5'

Это должно достигнуть что поиск you'r. Просто добавьте больше идентификатора. Я протестировал его.

-5
ответ дан Bill the Lizard 23 November 2019 в 00:11
поделиться

Следующее обновит все строки в одной таблице

Update Table Set
Column1 = 'New Value'

, следующий обновит все строки, где значение Column2 - больше чем 5

Update Table Set
Column1 = 'New Value'
Where
Column2 > 5

существует весь пример Unkwntech обновления больше чем одной таблицы

UPDATE table1, table2 SET
table1.col1 = 'value',
table2.col1 = 'value'
WHERE
table1.col3 = '567'
AND table2.col6='567'
-3
ответ дан Community 23 November 2019 в 00:11
поделиться

Можно также интересоваться использованием соединений на обновлениях, который возможен также.

Update someTable Set someValue = 4 From someTable s Inner Join anotherTable a on s.id = a.id Where a.id = 4
-- Only updates someValue in someTable who has a foreign key on anotherTable with a value of 4.

Редактирование: Если значения, которые Вы обновляете, не прибудут из где-то в другом месте в базе данных, необходимо будет выпустить несколько запросов на обновление.

2
ответ дан Shawn 23 November 2019 в 00:11
поделиться
UPDATE table1, table2 SET table1.col1='value', table2.col1='value' WHERE table1.col3='567' AND table2.col6='567'

Это должно работать на Вас.

существует ссылка в руководство MySQL для нескольких таблиц.

8
ответ дан Bill the Lizard 23 November 2019 в 00:11
поделиться

Так как у Вас есть динамические значения, необходимо использовать ЕСЛИ или СЛУЧАЙ для столбцов, которые будут обновлены. Это становится довольно ужасным, но это должно работать.

Используя Ваш пример, Вы могли сделать это как:

UPDATE table SET Col1 = CASE id 
                          WHEN 1 THEN 1 
                          WHEN 2 THEN 2 
                          WHEN 4 THEN 10 
                          ELSE Col1 
                        END, 
                 Col2 = CASE id 
                          WHEN 3 THEN 3 
                          WHEN 4 THEN 12 
                          ELSE Col2 
                        END
             WHERE id IN (1, 2, 3, 4);
117
ответ дан Community 23 November 2019 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: