如题, 在表单修改数据时,如修改用户信息(用户名,头像,联系方式等等), 在修改完个别字段后提交修改(而有的字段没有修改) 那提交所有的字段update肯定会影响效率(尤其是有的字段数据需要经过处理,如中文转换拼音,截取等等) 这种情况大家都是怎么做的呢? 如何方便的只update修改过的字段?
谢谢
回复内容:
如题, 在表单修改数据时,如修改用户信息(用户名,头像,联系方式等等), 在修改完个别字段后提交修改(而有的字段没有修改) 那提交所有的字段update肯定会影响效率(尤其是有的字段数据需要经过处理,如中文转换拼音,截取等等) 这种情况大家都是怎么做的呢? 如何方便的只update修改过的字段?
谢谢
可以使用MySQL的IF(expr1,expr2,expr3)函数.
类似于三元运算符
? :
, 表达式expr1为true(非null非0)时, 使用expr2值, 否则使用expr3 . IF()根据使用的上下文来返回数字或字符串.
如,
<code class="lang-sql">--以下要空值或0值才更新.UPDATE tableSET name = IF(name '', name, '空值要更新'), avatar = IF(avatar, avatar, '要更新')WHERE id = 1;</code>
能不能先将旧的记录 select
出来,然后对用户提交的表单数据2本文来源gaodaima#com搞(代@码$网6
搞gaodaima代码
进行对比过滤,过滤掉未变化的字段后再 update
。
<code>get newData from user inputselect oldData from dbcompare newData with oldData => needUpdateDataupdate needUpdateData in db</code>