我正在使用 MySQL 中的存储过程来更新 SQL 表中的一行。我所拥有的是一个表格,其中有几个列以增量方式命名。例如:Page_1、Page_2、Page_3....等。存储在这些位置的数据会在不同的时间更新,我还有另一列来存储该行的更新次数。每次程序运行时,count 变量都会增加,这使我可以利用它的值来跟踪数据的下一次更新应该发生的位置。
根据我的研究,我一直在寻找利用“动态 SQL”的解决方案。我不明白如何利用它来解决我的问题。
我想将一个变量作为列名传递给更新语句。
我目前拥有的代码如下。
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 的其他解决方案将此变量作为列名传递,我将不胜感激。
提前致谢。