MYSQL更新:是否可以先确认某些字段?

时间:2013-07-01 15:18:35

标签: php mysql updates

我得到了一个类似的查询:

"UPDATE snakes_tb 
       SET snake_pic_urls= CONCAT(snake_pic_urls,'*".$newSnakePic."'), 
           snake_default_pic = '".$Set_a_Value_here_only_if_this_field_is_empty_or_equal_to_NO_PIC."' WHERE snake_id={$id}"

在设置{value}值之前,可以做些什么才能满足snake_default_pic字段的条件?感谢。

2 个答案:

答案 0 :(得分:2)

只需更新哪里只更新没有pic的地方:

UPDATE snakes_tb 
       SET snake_pic_urls= CONCAT(snake_pic_url,'*".$newSnakePic."'), 
           snake_default_pic = '".$pic."' 
       WHERE snake_id={$id}
             AND (snake_default_pic = '' OR snake_default_pic='NO_PIC')

请注意,您的代码也容易受到SQL注入攻击。准备好的陈述可以帮助防止这种情况发生。

答案 1 :(得分:2)

试试这个:

UPDATE snakes_tb 
       SET snake_pic_urls= CONCAT(snake_pic_urls,'*".$newSnakePic."'), 
           snake_default_pic = IF(snake_default_pic = '' OR snake_default_pic = 'NO_PIC' ,'default_pic',snake_default_pic) 
WHERE snake_id={$id}

如果snake_default_pic为空或等于NO_PIC,则会更新为default_pic,否则会保持相同的值