update table_a set col_1=IF('col_1'='NULL',expression_1,expression_2) where id in id_group要达到的效果是:
1.选出表A中id属于id_group的行;
2.判断这些行里面col_1的值是否为空;
3.col_1为空的行设置成表达式1的值;
4.其他不为空的行设置成表达式2的值;请问这一句的语法有没有什么问题,怎么能得到以上需要的效果~?谢谢~~~

解决方案 »

  1.   

    update table_a set col_1=IF(col_1 is null,expression_1,expression_2) where id in id_group
      

  2.   

    update table_a set col_1=IF(col_1 IS NULL,expression_1,expression_2) where id in id_groupORupdate table_a set col_1=IFNULL(col_1,expression_1,expression_2) where id in id_group
      

  3.   

    update table_a set col_1=IF(col_1 is null,expression_1,expression_2) where id in id_group ;
      

  4.   


    update table_a 
    set col_1=(case when 'col_1' is NULL then expression_1 else expression_2) 
    where id in id_group
      

  5.   

    col_1='NULL'

    col_1  is  null  是有区别的
    第一种是说占有内存空间的,存储的内容就是NULL,判断col_1和‘NULL’  相不相等
    第二种是说你设置这个字段的时候,为空值,那么就是NULL,这是一个default的值,它是一个unknown的值,它不是一个任意的确定的值!
    update table_a set col_1=IF(col_1 is null,expression_1,expression_2) where id in id_group