0

我收到一个类似的查询:

"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}"

在设置字段的值之前,可以做些什么来满足snake_default_pic字段的条件?谢谢。

4

2 回答 2

2

只需更新 where 只更新没有图片的地方:

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 注入的影响。准备好的语句可以帮助防止这种情况。

于 2013-07-01T15:20:43.823 回答
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否则它将保持相同的值

于 2013-07-01T15:22:11.063 回答