动态MySQL排序查询,使用变量进行表名和增量排序

时间:2019-06-21 13:08:26

标签: mysql

我正在MySQL中使用动态SQL来构建对记录进行重新排序的排序查询。我正在排序的字段称为“ CodeSequence”,这在我使用的所有表中都是标准的。所以我想一次创建一个排序查询,然后将表名作为参数传递。

查询将对CodeSequence字段重新排序。我想使用MySQL存储过程。

我想创建一个可以在具有“ CodeSequence”字段的任何表和数据库上使用的Sequence排序。存储过程极其快捷高效。如果我不必编写多个SORT过程,那就太棒了。

这是我到目前为止的代码:

BEGIN
SET @iSequence  = 0;
SET @t1 = CONCAT('UPDATE ', sTablename, ' AS t ');
SET @t2 = CONCAT('(SELECT * FROM ', sTablename, ') AS temp');
SET @t3 = CONCAT('SET ', CodeSequence, ' = temp.', 
@iSequence:=@iSequence+1);
SET @t4 = CONCAT(@t1, @t2, @t3);
select @t4;
PREPARE stmt FROM @t4;
EXECUTE stmt USING CodeSequence;
DEALLOCATE PREPARE stmt;
END


I wanted to get something like the following:
ID    CodeSequence  Name
12    1             TEST
14    2             Record #2
15    3             Record #3
16    4             TEST 4

我的问题是我得到以下错误,“ MYSQL说#1054-字段列表中的未知列,“ CodeSequence”。这就是为什么我在UPDATE查询中使用SELECT语句。有什么建议吗??谢谢您?寻求帮助。

0 个答案:

没有答案