UPDATE оператор MySQL

В этом учебном пособии вы узнаете, как использовать MySQL оператор UPDATE с синтаксисом и примерами.

Описание

MySQL оператор UPDATE используется для обновления существующих записей в таблице в базе данных MySQL. Существует три синтаксиса для оператора UPDATE в зависимости от типа обновления, которое вы хотите выполнить.

Синтаксис

Простая форма синтаксиса для оператора UPDATE при обновлении одной таблицы в MySQL:

UPDATE table
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions];

Теперь полный синтаксис для MySQL оператора UPDATE при обновлении одной таблицы:

UPDATE [ LOW_PRIORITY ] [ IGNORE ]
table
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];

ИЛИ
Синтаксис оператора UPDATE при обновлении одной таблицы данными из другой таблицы в MySQL:

UPDATE table1
SET column1 = (SELECT expression1
FROM table2
WHERE conditions)
[WHERE conditions];

ИЛИ
Синтаксис MySQL оператора UPDATE при обновлении нескольких таблиц:

UPDATE table1, table2, ...
SET column1 = expression1,
column2 = expression2,
...
WHERE table1.column = table2.column
AND conditions;

Параметры или аргументы

LOW_PRIORITY - необязательный. Если указан LOW_PRIORITY, обновление будет отложено до тех пор, пока не будет процессов читающих из таблицы. LOW_PRIORITY может использоваться с таблицами MyISAM, MEMORY и MERGE, которые используют блокировку на уровне таблицы.
IGNORE - необязательный. Если предоставляется IGNORE, все ошибки, возникающие во время обновления, игнорируются. Если обновление в строке приведет к нарушению первичного ключа или уникального индекса, обновление в этой строке не будет выполнено.
column1, column2 - столбцы, которые вы хотите обновить.
expression1, expression2 - новые значения для назначения column1, column2. Таким образом, column1 присваивается значение expression1, column2 присваивается значение expression2 и т. д.
WHERE conditions - необязательный. Условия, которые должны выполняться для выполнения обновления.
ORDER BY expression - необязательный. Он может использоваться в сочетании с LIMIT для сортировки записей соответствующим образом при ограничении количества записей, подлежащих обновлению.
LIMIT number_rows - необязательный. Если указан LIMIT, он контролирует максимальное количество записей для обновления в таблице. Максимальное количество записей, указанных в файле number_rows, будет обновляться в таблице.

Пример обновление одного столбца

Рассмотрим очень простой пример MySQL запроса UPDATE.

В этом MySQL примере UPDATE обновил поле last_name на 'Ford' в таблице customers, где customer_id = 500.

Пример обновления нескольких столбцов

Рассмотрим пример MySQL UPDATE, где вы можете обновить более одного столбца с помощью одного оператора UPDATE.

Если вы хотите обновить несколько столбцов, вы можете сделать это, разделив пары столбца / значения запятыми.
Этот пример инструкции MySQL UPDATE обновил state в ‘Nevada’ и customer_rep до 23, где customer_id больше 200.

Пример обновления таблицы данными из другой таблицы

Рассмотрим пример UPDATE, который показывает, как обновить таблицу данными из другой таблицы в MySQL.

В этом примере UPDATE будет обновляться только таблица customers для всех записей, где customer_id больше 5000. Когда supplier_name из таблицы suppliers совпадает с именем customer_name из таблицы customers, city из таблицы suppliers будет скопирован в поле city таблицы customers.

Пример обновления нескольких таблиц

Рассмотрим пример MySQL UPDATE, где вам может понадобиться выполнить обновление, включающее более одной таблицы в одном предложении UPDATE.

В этом примере MySQL оператор UPDATE обновил значение city в таблице customers значением city из таблицы suppliers, где customer_id соответствует supplier_id.