MySQL:在具有其他字段条件的字段上使用“when”子句

时间:2017-09-20 09:14:54

标签: mysql

我将在重复键上执行插入以忽略。有一种特殊情况我不想更新日期时间字段,在这种情况下,它被称为 data_ultima_telefonata

以下是整个查询:

INSERT IGNORE INTO 'db'.'singolachiamatatesting' ('id_x', 'data_ultima_telefonata',  'operatore',  'status_descrizione','id_status',    'id_centro_lead',   'id_shop',    'data_apt',  'nome_pv','azienda') VALUES 
                   ('25647',
                   '2017-09-19 20:41:17',
                   'EU GUY',
                   'NR SMS Courtesy fissato',
                   '140',
                   '26',
                   '115',
                   '2017-09-21 15:00',
                   'SHOP','PRJXX'),
                    ON DUPLICATE KEY UPDATE 'id_status'=VALUES('id_status'), 'status_descrizione'=
VALUES('status_descrizione'),'data_ultima_telefonata'=CASE  WHEN VALUES('id_status' IN ('100','200') 
THEN VALUES('data_ultima_telefonata') 
ELSE 'data_ultima_telefonata' END, 'data_apt'=VALUES('data_apt')

(请记住,整数字段的引号是直接从C#提供的:这不是错误!)

这种特殊情况,是当值由值给出的 id_status 字段时,它等于100或200(int数字字段)。否则,我会更新字段 data_ultima_telefonata

我尝试使用 case 子句条件:

CASE  WHEN VALUES('id_status' IN (100, 200) THEN VALUES('data_ultima_telefonata') ELSE 'data_ultima_telefonata' END

但它给了我一般错误。

0 个答案:

没有答案