我有一个两个表帐户表,其中包含列name
和accounts_cstm,其中包含列(company_name_c
varchar,first_name_c
varchar,last_name_c
varchar)。
表accounts.id和accounts_cstm.id是相同的。
我正在尝试创建一个查询,我将在情况下替换accounts.name(varchar)中的所有值。
如果company_name_c有值,则将其替换为company_name_c OR
如果company_name_c为null,则将其替换为concat first_name_c和last_name_c。我创建了这个查询,但是我收到了错误:
Error Code: 1292. Truncated incorrect DOUBLE value: 'TEST_Launch1'. Any help please ?
查询下方:
update accounts,(select accounts_cstm.id_c as idc,
(case accounts_cstm.company_name_c
WHEN accounts_cstm.company_name_c is not null THEN accounts_cstm.company_name_c
WHEN '' THEN accounts_cstm.company_name_c
ELSE CONCAT(accounts_cstm.first_name_c,' ',accounts_cstm.last_name_c) END) as name1
from accounts_cstm) as accc
SET accounts.name = accc.name1
where accounts.id = accc.idc
答案 0 :(得分:0)
我自己是新手......但我猜mysql中的触发器可能非常方便。 这里是触发器介绍的链接: http://www.mysqltutorial.org/sql-triggers.aspx