根据另一个表值

时间:2017-03-21 07:40:21

标签: mysql sql

我有一个两个表帐户表,其中包含列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  

1 个答案:

答案 0 :(得分:0)

我自己是新手......但我猜mysql中的触发器可能非常方便。 这里是触发器介绍的链接: http://www.mysqltutorial.org/sql-triggers.aspx