我有如下表:这应该是什么正确的MySQL查询?
id name priority urgency output
1 mark 0 0 A
2 mark 0 1 B
3 mark 0 0 C
4 erik 0 0 D
5 erik 0 0 E
我想增加在列表中具有最高紧迫性的进入每个名称,或者最古老的之一,如果有相等紧迫问题清单的优先级。在此之后,我希望列表中每个名称具有最高优先级的条目。因此,在第一次运行后的表应该是这样的:
id name priority urgency output
1 mark 0 0 A
2 mark 1 1 B
3 mark 0 0 C
4 erik 1 0 D
5 erik 0 0 E
什么,然后我从数据库中想要的是与每个名称优先级最高的环节,所以这一点:
id name priority urgency output
2 mark 1 1 B
4 erik 1 0 D
是否有某人在那里知道如何做到这一点?
的这个缺点是,每个名字会把它弄的自己的查询。在我的例子中有两个名字,但是在实际的数据库中有3227个名字...... – patrick 2012-03-19 17:33:22
在你的问题中没有提到这个约束。在实践中,这些查询的性能至关重要吗?你是通过网络请求还是离线进行此操作?如果你是用cron来做的话,那么它花费10秒(而不是一秒钟)就可以适用于你的用例。 – halfer 2012-03-19 17:43:34
(顺便说一下,3227条记录并不多,试试看我的方式,看看它需要多长时间 - 即使对于服务器非常低的情况,这些查询也是微不足道的)。 – halfer 2012-03-19 17:46:47