Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 以循环方式为每个配置选择前n个记录_Mysql_Algorithm_Python 2.7_Data Structures - Fatal编程技术网

Mysql 以循环方式为每个配置选择前n个记录

Mysql 以循环方式为每个配置选择前n个记录,mysql,algorithm,python-2.7,data-structures,Mysql,Algorithm,Python 2.7,Data Structures,已经有一段时间了,我很难用头脑去思考我正在尝试的算法。 表中存储了具有不同配置的对象列表 可以有m种不同类型的配置,例如, A、 B、C等 并且每种类型的配置都可以有子类型 Object,Parent Configuration,Configuration,Rank O1, A, A1, 1 O2, A, A2, 2 O3, A, A3, 3 O4, B, B1, 4 O5, B, B2, 5 O6, B, C1, 6 O7, C, C2, 7 给定一个用户,该用户希望n个对象具有指定配置中的

已经有一段时间了,我很难用头脑去思考我正在尝试的算法。 表中存储了具有不同配置的对象列表

可以有m种不同类型的配置,例如, A、 B、C等

并且每种类型的配置都可以有子类型

Object,Parent Configuration,Configuration,Rank
O1, A, A1, 1
O2, A, A2, 2
O3, A, A3, 3
O4, B, B1, 4
O5, B, B2, 5
O6, B, C1, 6
O7, C, C2, 7
给定一个用户,该用户希望n个对象具有指定配置中的任意配置(按秩排列),以便最大可能没有不同的对象配置,例如:

若n==3,配置用户感兴趣的是A1、A2、B1、B2、C1、C2

然后是一个普通的sql查询,如

SELECT *
FROM   table
WHERE  configuration IN ( a1, a2, b1, b2,
                          c1, c2 )
ORDER  BY rank
LIMIT  3;  
然后输出将是对象O1、O2和O3,因为它们的秩最高,但最佳解决方案是返回对象O1、O4、O6每个父配置的秩最高的对象

假设在上面的示例中,n==4,那么输出将是 O1、O4、O6和O2,因为我们已经耗尽了所有不同类型的配置,所以我们再次返回top-rank对象


有什么帮助吗?

您的MySQL版本是什么?这是一个带有轻微扭曲的
行号()。检查这个答案,了解一个想法:MySQL 5.6,检查你的链接。这是一个数据库问题。建议您删除数据结构标记。添加数据结构标记,因为我也愿意接受使用任何编程语言解决的解决方案。