2015-03-21 2 views
-1

Я новичок в MySQL и изучаю ее самостоятельно. На самом деле я хочу скопировать столбец из таблицы в мой существующий столбец таблицы! Предположу, что моя существующая таблица:Вставить новую запись в таблицу MySQL при запуске

enter image description here

где PID значение вставляется по умолчанию! теперь я хочу, чтобы скопировать столбец из другой таблицы с помощью:

INSERT INTO exist_tab(FirstLevel) SELECT some_col FROM another_table; 

так, что значения должны прийти внутри Firstlevel колонны. , но проблема в том, что копии значения приходят ниже Pid значений в колонке Firstlevel как:

enter image description here

видеть, что Firstlevel идет ниже! что с этим не так? Мне нужно значение «H» против 19, но я не хочу использовать wild cards, просто хочу скопировать новые данные по старым данным столбца. спасибо Я новичок в этом виде, пожалуйста, кто-нибудь может дать мне представление о том, как это сделать пожалуйста! заблаговременно

+0

Итак, yoiu хотите удалить старые данные? – CMPS

+1

Используйте UPDATE, а не INSERT. Вы хотите изменить существующую строку, а не создать новую. –

+0

, если вы используете обновление, как я могу скопировать значения столбцов? Я имею в виду, как я могу использовать вставку и обновление? –

ответ

0

Вы используете здесь INSERT. INSERT создаст новую запись в таблице. Вы должны использовать UPDATE для обновления определенного столбца в существующую таблицу, как это:

UPDATE exist_tab 
SET FirstLevel = (SELECT some_col FROM another_table) 

Если вы хотите какой-либо условного обновления, то вы можете использовать JOIN как это:

UPDATE exist_tab a 
LEFT JOIN another_table b ON 
a.pid = b.id 
SET FirstLevel = a.some_col; 
+0

неправильный! он имеет синтаксическую ошибку после предложения! –

+0

Какая ошибка вы получаете? – Beginner

+0

У вашего запроса есть значение ошибки после запроса "from" test its yourself –

0

INSERT и UPDATE отличается от команды для выполнения другой задачи.

Вставка: Вставить новую запись в таблицу

Update: Обновление существующей записи в таблице Если Exist.

НЕ УВЕРЕН ОБ ЭТОМ: (я не знаком с MYSQL)

Или вы можете попробовать:

update exist_tab a set a.FirstLevel= 
(select top 1 some_col from another_table where Id=a.Id) 

EDIT2:

update exist_tab a set a.FirstLevel= 
    (select top 1 some_col from another_table) 

Вы можете найти Here.

+0

Мне не нужно использовать идентификаторы или любые дикие карты –

+0

ответ обновлен: попробуйте 'update exist_tab набор a.FirstLevel = (выберите top 1 some_col from another_table) это. @JavaNerd –

+0

lol У меня есть несколько строк для копирования! –

Смежные вопросы