Изменить запись в таблице (MySQL)

Редактирование записей в СУБД MySQL осуществляется при помощи команды UPDATE.

Исходные данные

Например есть таблица `news`, с несколькими записями.

Таблица news

Создаем таблицу.

CREATE TABLE `news` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `category_id` INT(10) UNSIGNED NULL DEFAULT NULL, `text` TEXT NOT NULL, `add_date` DATE NOT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB;

Данные

Заполняем таблицу данными (Как добавить данные в таблицу MySQL).

id category_id text add_date
1 1 Самая первая новость 2013-11-10
2 3 Просто вторая новость 2013-11-13
3 3 Очень третья новость 2013-11-16
4 4 Четвертейшая новость 2013-11-19
5 2 Последняя новость 2013-11-21

UPDATE

Напишем два запроса на обновление данных.

Первый запрос: текст «Самая первая новость», у новости с id = 1, заменить на "The very first news"; Второй запрос: установить значение поля category_id = 2 у всех записей таблицы news.

UPDATE ... WHERE

UPDATE `news` SET `text` = 'The very first news' WHERE `id` = 1;

UPDATE всех записей

UPDATE `news` SET `category_id` = 2;

После выполнения запросов, данные будут выглядеть так:

id category_id text add_date
1 2 The very first news 2013-11-10
2 2 Просто вторая новость 2013-11-13
3 2 Очень третья новость 2013-11-16
4 2 Четвертейшая новость 2013-11-19
5 2 Последняя новость 2013-11-21

Синтаксис UPDATE

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

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT rows]

Во время обновления записи можно охватить несколько таблиц (нельзя использовать сортировку и лимит).

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...] SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

Категории

СУБДMySQL

Комментарии