所以我有一个奇怪的场景,我希望以某种方式对以下数据进行排序。设表格数据为:
abc 111 2 priority
abc 111 blah data
abc 222 1 priority
abc 222 blah data
abc 333 3 priority
abc 333 blah data
我想根据第 3 列(第 4 列优先)对数据进行排序,但将返回顺序按第 2 列分组。因此预期的查询结果如下所示:
abc 222 1 priority
abc 222 blah data
abc 111 2 priority
abc 111 blah data
abc 333 3 priority
abc 333 blah data
执行此操作的最佳方法是什么。我可以考虑预先进行查询和 in 子句,但这样我就必须考虑所有可能的优先级。
提前致谢。仅供引用,我正在使用它的 MySQL。
最佳答案
我想这就是你需要的:
http://sqlfiddle.com/#!2/48057/14
DDL
CREATE TABLE my_data(
name VARCHAR(20),
num NUMERIC(5),
c NUMERIC(3),
priority NUMERIC(3)
);
DML
INSERT INTO my_data VALUES("abc", 111, 2, 1);
INSERT INTO my_data VALUES("abc", 222, 3, 4);
INSERT INTO my_data VALUES("abc", 222, 1, 9);
INSERT INTO my_data VALUES("abc", 111, 4, 2);
关于MySQL按多列排序,同时按一列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13271667/