update修改数据的问题

如题, 在表单修改数据时,如修改用户信息(用户名,头像,联系方式等等), 在修改完个别字段后提交修改(而有的字段没有修改) 那提交所有的字段update肯定会影响效率(尤其是有的字段数据需要经过处理,如中文转换拼音,截取等等) 这种情况大家都是怎么做的呢? 如何方便的只update修改过的字段?

谢谢

阅读 4.8k
2 个回答

可以使用MySQL的IF(expr1,expr2,expr3)函数.

类似于三元运算符? :, 表达式expr1为true(非null非0)时, 使用expr2值, 否则使用expr3 . IF()根据使用的上下文来返回数字或字符串.

如,

--以下要空值或0值才更新.
UPDATE table
SET name = IF(name <> '',  name, '空值要更新'),
    avatar = IF(avatar, avatar, '要更新')
WHERE id = 1;

能不能先将旧的记录 select 出来,然后对用户提交的表单数据进行对比过滤,过滤掉未变化的字段后再 update

get newData from user input
select oldData from db
compare newData with oldData => needUpdateData
update needUpdateData in db
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏