动态增加mysql表列中的值

时间:2013-10-09 05:08:25

标签: mysql

我有一个包含整数的mysql表列(运行),我希望使用单击按钮时的更新查询将其增加另一个动态值(1,2,3,4,5)。我该怎么做?

(如果不从该表列中检索原始值,是否有任何直接的方法来增加值,而不是像AUTO_INCREMENT那样使用静态值)

2 个答案:

答案 0 :(得分:1)

我已经检查了MySql here上的文档,看起来您可以使用这样的更新查询来执行此操作:

UPDATE t1 SET col1 = col1 + 1;

只要col1也是数字,您可以将1更改为任何数值。 MySql将获得col1的初始值并将其编号添加到其中。

即使MySql可以做到这一点,我猜这也会对速度产生影响,它可能比2次查询更快,但可能需要测试才能确定差异。

当遇到软件速度问题时,只保存一个值的选择查询,这不是您可以优化应用程序的关键修改。正如Digvijay Yadav建议的那样,您还应该检查其他解决方案,以及其他优化措施,以加快您的应用程序。

该页面上的另一个示例还显示了您尝试执行的操作是:

UPDATE t SET id = id + 1 ORDER BY id DESC;

请尝试一下,如果它不起作用,请告诉我。

答案 1 :(得分:0)

如果DB交互是主要问题,那么在这种情况下,我建议不要在每次用户点击时读/写DB。相反,您应该检索一次值并将它们存储在DS中(可能是数组或列表)。在每次单击时,您都会对此列表执行操作,并在一段时间后使用更新的值更新数据库。

此外,如果您在每次读/写操作中创建和销毁数据库连接,那么我不建议这样做。更好的解决方案IMO是在webapp启动时创建数据库连接,并将connection对象作为ServletContext存储在attribute中,就像使用servlet和JSP一样。

此外,如果您的网络应用程序太大而且有数千名用户,那么有几种缓存技术可以提高数据库的性能。