动态行专列 【Mybatis实例】实现动态表头数据 、对动态表头字段排序( 二 )

subjects;}
4 动态表头排序
代码在3中已经展示过了 。动态表头的排序,相对来说比较简单,只需要使用重名命后的列名进行排序即可:
ORDER BY ${subjectId}ORDER BY ${subjectId} DESC
5 执行结果
{"headers": {"1": {"id": 1,"name": "java","subjectId": "subject1"},"2": {"id": 2,"name": "C","subjectId": "subject2"},"3": {"id": 3,"name": "C#","subjectId": "subject3"},"4": {"id": 4,"name": "Python","subjectId": "subject4"}},"contents": [{"name": "沸羊羊","subject1": 76,"subject2": 32,"subject3": 67,"subject4": 12,"total": 187},{"name": "懒羊羊","subject1": 42,"subject2": 27,"subject3": 99,"subject4": 12,"total": 180},{"name": "喜羊羊","subject1": 89,"subject2": 98,"subject3": 90,"subject4": 97,"total": 374}]}
表DDL
CREATE TABLE `subjects` (`id` int NOT NULL,`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '科目',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;CREATE TABLE `users` (`id` int NOT NULL,`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;CREATE TABLE `score` (`id` int NOT NULL,`user_id` int DEFAULT NULL,`subject_id` int DEFAULT NULL,`score` tinyint DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
源码地址: