使用case-when时需要注意一个点

当时Mapper中就只有一段简单的update语句,如下:

UPDATE 表1 a, 表2 b
SET 
   a.hzjy_flag = case b.HZJYBZ when '1' then '1' when '2' then 2 else '2' end,
   a.reference_price = b.CKJG
WHERE a.market_no = b.JYSC
  AND a.report_code = b.ZQDM   
  AND b.check_status = 'o'

执行该条语句报错:Data truncation:Truncated incorrect DOUBLE VALUE '',

本来以为是其中一个字段是decimal导致的,最后发现把这个字段去掉之后也会有这个问题

最后发现是因为when '2' then 2的时候没有加引号的原因导致的,啧啧啧,真的是.不能把一个数字赋给字符串

你可能感兴趣的:(错误归纳)