首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态选择MySQL更新

问动态选择MySQL更新
EN

Stack Overflow用户
提问于 2013-02-10 13:03:43
回答 1查看 100关注 0票数 1

这更多的是一个理论问题。我有一个页面与各种文本字段,下拉框等一堆。每个用户都有他/她的“自己的页面”,可以通过这个更新页面,我指的是更新的。他根据自己的选择更新字段。它向一个“预览页”传递大约30个变量(如果每个字段都是输入的)。如果用户喜欢预览页面,那么他们点击预览页面底部的“更新”按钮,所有的变量都会被更新到适当的MySQL表中,其他人看到的他们的“自己的页面”也会动态更新。(如果这个解释不清楚,请告诉我)。

第一次插入此信息很容易。然而,当用户想要稍后只更新他的页面的几个字段时,这是我感到困惑的地方。如何使MySQL update查询动态地仅识别对页面上用户想要更新的字段的更新(同时将其他字段留空,从而使这些列的旧信息保持不变,并且在update查询中忽略这些信息)。

如果我的要求不合理,请让我知道,我会再试一次。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-02-10 17:23:59

要做到这一点最简单的方法是

代码语言:javascript
复制
UPDATE MyTable m SET m.f1 = COALESCE(input1,m.f1), m.f2 = COALESCE(input2,m.f2), ....
WHERE m.id = key;

COALESCE将返回第一个非空值(如果所有值都为空,则返回null )。

请注意,如果要强制使用默认值,可以在现有字段值后插入默认值。

如下所示:

代码语言:javascript
复制
UPDATE MyTable m SET m.f1 = COALESCE(input1,m.f1,default1), m.f2 = COALESCE(input2,m.f2,default2), ....
WHERE m.id = key;

请参阅:MySQL: how to use COALESCE

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14794886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档