首页 > update修改数据的问题

update修改数据的问题

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

谢谢


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

get newData from user input
select oldData from db
compare newData with oldData => needUpdateData
update needUpdateData in db

可以使用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;
【热门文章】
【热门文章】