Mysql 以变量作为参数的SQL更新

Mysql 以变量作为参数的SQL更新,mysql,sql,stored-procedures,dynamic-sql,Mysql,Sql,Stored Procedures,Dynamic Sql,我正在使用MySQL中的一个存储过程来更新SQL表中的一行。我拥有的是一个表,其中几个列以增量方式命名。例:第1页、第2页、第3页……等等。 存储在这些位置的数据在不同的时间更新,我有另一列来存储行的更新次数。每次过程运行时,count变量都会递增,这允许我利用它的值来跟踪下一次数据更新的位置 通过我的研究,我一直在利用“动态SQL”寻找解决方案。我不知道如何利用它来解决我的问题 我想将一个变量作为列名传递给update语句 我目前拥有的代码如下 SET COUNT = COUNT + 1;

我正在使用MySQL中的一个存储过程来更新SQL表中的一行。我拥有的是一个表,其中几个列以增量方式命名。例:第1页、第2页、第3页……等等。 存储在这些位置的数据在不同的时间更新,我有另一列来存储行的更新次数。每次过程运行时,count变量都会递增,这允许我利用它的值来跟踪下一次数据更新的位置

通过我的研究,我一直在利用“动态SQL”寻找解决方案。我不知道如何利用它来解决我的问题

我想将一个变量作为列名传递给update语句

我目前拥有的代码如下

 SET COUNT = COUNT + 1; -- modify count from count column
 SET COLUMNLOCATIONVARIABLE = CONCAT('Page_' , COUNT); -- concatenate the count with the column "Prefix"

 UPDATE Table
 SET COLUMNLOCATIONVARIABLE = INPUTVARIABLE --Use the concatenated statement as the column name and update it with input data
 WHERE mainID = INPUTID;
如果有人能向我解释如何使用动态SQL或其他使用非动态SQL的解决方案将此变量作为列名传入,我将不胜感激


提前感谢。

这不是使用数据库的方法。为
Page.*
列创建一个新表,通过标识链接到主表,并带有页码列。然后,您可以根据需要更新和包含尽可能多的页面,并按主标识和页码进行处理。

非常感谢您的想法。我知道这不是使用数据库的正确方法,但我仍然不明白拆分这些列如何使您更容易知道将新数据更新到何处。