为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】使用变量进行排序,取不到变量的值。这里是有参数或者变量控制么?
【背景】无
【现象】仅在目标集群上能稳定复现,其他同版本集群上未复现。
【业务影响】影响业务进行
【TiDB 版本】5.7.25-TiDB-v4.0.0
【附件】
复现脚本:
CREATE TABLE tmp_test
(
c_amount
decimal(18,4) DEFAULT NULL,
c_name
varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
insert into tmp_test
value (0,‘9’),(1,‘8’),(2,‘7’),(3,‘6’),(4,‘5’),(5,‘4’),(6,‘3’),(7,‘2’),(8,‘1’),(9,‘0’);
SET @amount = 0;
SELECT * FROM (
SELECT c_amount,(@amount:=@amount+1),@amount c_amount_sort FROM tmp_test
order by c_amount
) t;
问题集群上的执行结果:
其他集群上的执行结果: