MySQL:使用;什么时候;包含其他字段条件的字段上的子句

MySQL:使用;什么时候;包含其他字段条件的字段上的子句,mysql,Mysql,我将在重复键上执行插入忽略。有一种特殊情况,我不想更新datetime字段,在这种情况下,它被称为data\u ultima\u telefonata 以下是整个查询: INSERT IGNORE INTO 'db'.'singolachiamatatesting' ('id_x', 'data_ultima_telefonata', 'operatore', 'status_descrizione','id_status', 'id_centro_lead', 'id_shop'

我将在重复键上执行插入忽略。有一种特殊情况,我不想更新datetime字段,在这种情况下,它被称为data\u ultima\u 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\u status字段等于100或200(整数数字字段)。否则,我将更新字段data\u ultima\u telefonata

我尝试使用此案例子句条件:

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

但它给了我一般性错误。

一个“一般性错误”?类似于:“嘿,伙计,有个错误!”?您是否错过了值('id_status and before IN')后面的封闭括号?类似于:“您的查询执行中有个错误”.仅此而已。为什么不试着复制你问题中的确切错误?因为问题是给定的错误就是我写的。如果你想表现得咄咄逼人,请放弃。