Обновление всей строки значениями из строки в другой таблице (cake / mysql) - PullRequest
0 голосов
/ 08 апреля 2011

В настоящее время я использую запрос, подобный этому, чтобы обновить таблицу с именем cats из таблицы, называемой admin cats ($ id - потому что он в торте, это просто число типа 1,2,3 и т. Д.). Так как это я называю каждое поле (их может быть 50) и говорю это так:

update cats AS c, admin_cats set c.category=(select category from admin_cats where id=$id), [--removed 50 columns in the middle--] c.overviewImageText8=(select overviewImageText8 from admin_cats where id=$id) where c.id = $id");

Я обновляю каждый столбец, так что я могу просто сказать что-то вроде:

UPDATE cats SET * = SELECT * FROM admin_cats WHERE admin_cats.id = $id) WHERE cats.id IN ($id);

Конечно, я попробовал это, и это не сработало, но я хочу сделать это, когда строка cat, в которой идентификатор совпадает с $ id, обновит значения из admin_cats с таким же идентификатором. Как я могу это сделать?

1 Ответ

1 голос
/ 09 апреля 2011

В частности, для MySQL используйте REPLACE

REPLACE cats (<optional columns>)
SELECT <cols> 
FROM admin_cats
WHERE admin_cats.id = $id;

Примечание. Это предполагает, что у кошек есть первичный ключ (например, cats.id), что ошибка повторяющейся строки может быть обнаружена, истрока заменена.

Примечание: другие базы данных не поддерживают замену или использование другого, похожего, но другого синтаксиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...