在重复的mysql查询上插入选择 [英] insert into select on duplicate mysql query

查看:159
本文介绍了在重复的mysql查询上插入选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更新MySQL中的重复记录,

I am trying to update on duplicate record in MySQL,

我的表中有很多列,但是我只想更新另一个与当前表具有相同desc的表中的某些列,但是它不更新记录.

I have a table with many column but i want to update only some column from another table with same desc as current table but it is not updating records.

我的查询是:

插入backup_prochart.symbol_list(ticker,end_date,cur_date) 从prochart.symbol_list t中选择代码,t.end_date,t.cur_date,其中 重复键更新上的股票代码= t.ticker和股票代码='MAY17' end_date = t.end_date,cur_date = t.cur_date;

insert into backup_prochart.symbol_list(ticker,end_date,cur_date) select ticker,t.end_date,t.cur_date from prochart.symbol_list t where ticker=t.ticker and ticker= 'MAY17' on duplicate key update end_date=t.end_date,cur_date=t.cur_date;

我尝试过的另一个查询

插入backup_prochart.symbol_list(ticker,end_date,cur_date),从prochart.symbol_list t中选择t.ticker,t.end_date,t.cur_date,其中重复键更新时,ticker = t.ticker和t.ticker ='MAY17' end_date = t.end_date,cur_date = t.cur_date;

insert into backup_prochart.symbol_list(ticker,end_date,cur_date) select t.ticker,t.end_date,t.cur_date from prochart.symbol_list t where ticker=t.ticker and t.ticker= 'MAY17' on duplicate key update end_date=t.end_date,cur_date=t.cur_date;

谁能告诉我我的查询出了什么问题??

can anyone tell me whats wrong with my query.?

推荐答案

您可以尝试:

INSERT INTO backup_prochart.symbol_list (ticker, end_date, cur_date) 
SELECT ticker, end_date, cur_date FROM prochart.symbol_list WHERE ticker = 'MAY17' 
ON DUPLICATE KEY UPDATE end_date = values(end_date), cur_date = values(cur_date);

当然,对于表"backup_prochart.symbol_list","ticker"列必须定义为唯一.

Of course the column "ticker" must be defined as unique for the table "backup_prochart.symbol_list".

这篇关于在重复的mysql查询上插入选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆