обновить два столбца в запросе на обновление mysql - PullRequest
0 голосов
/ 16 января 2012
UPDATE IP SET (src_ip, vlan_id) = (SELECT DISTINCT src_ip, vlan_id FROM video_2)

Эта команда имеет синтаксическую ошибку.Мне нужно использовать src_ip и vlan_id как пару, так как в таблице video_2 один и тот же src_ip может иметь одинаковый или другой vlan_id, поэтому мне нужно выбрать уникальный «src_ip, vlan_id» paris из video_2 и поместить их в новую таблицу IP

Может кто-нибудь помочь?

Ответы [ 2 ]

1 голос
/ 16 января 2012

Когда вы говорите "put them into a new table" вы имеете в виду, что вы действительно хотите сделать вставку тогда? (Таблица назначения в настоящее время пуста?)

INSERT INTO
  IP
SELECT DISTINCT
  src_ip, vlanid
FROM
  video2


Если вы имеете в виду, что в таблице IP уже есть записи, как вы решаете, какая запись должна получить какую комбинацию ip / vlanid? Сначала вы должны думать об этом как о соединении, где вы можете сопоставить каждую запись, которую необходимо обновить, с комбинацией, которую вы хотите обновить. Если вы можете записать его как прямой SELECT (с записью IP с одной стороны и записью Veido2 с другой), мы можем показать вам, как превратить его в ОБНОВЛЕНИЕ.

0 голосов
/ 16 января 2012

Вы можете сделать это в Oracle, не будучи уверенным, разрешено ли это в MySQL, хотя, следовательно, ваша синтаксическая ошибка. Значит, вам нужно использовать что-то вроде L

UPDATE tbl SET field1 = value1, field2 = value2 WHERE (condition)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...