我有一个像这样的数据库表
<table>
<tr>
<th>no</th>
<th>name</th>
<th>income</th>
<th>work</th>
<th>score</th>
</tr>
<tr>
<td>1</td>
<td>alan</td>
<td>US 100</td>
<td>Designer</td>
<td>30%</td>
</tr>
<tr>
<td>2</td>
<td>lara</td>
<td>US 100</td>
<td>Doctor</td>
<td>34%</td>
</tr>
<tr>
<td>3</td>
<td>foong</td>
<td>US 100</td>
<td>Teacher</td>
<td>7%</td>
</tr>
<tr>
<td>4</td>
<td>Rose</td>
<td>US 50</td>
<td>Waitress</td>
<td>55%</td>
</tr>
<tr>
<td>5</td>
<td>Jack</td>
<td>US 30</td>
<td>Programmer</td>
<td>50%</td>
</tr>
<tr>
<td>6</td>
<td>jeff</td>
<td>US 3</td>
<td>Lawyer</td>
<td>90%</td>
</tr>
<tr>
<td>7</td>
<td>elson</td>
<td>US 2000</td>
<td>Footballer</td>
<td>60%</td>
</tr>
<tr>
<td>8</td>
<td>steve</td>
<td>US 22</td>
<td>chef</td>
<td>10%</td>
</tr>
<tr>
<td>9</td>
<td>albert</td>
<td>US 35</td>
<td>Admin</td>
<td>80%</td>
</tr>
<tr>
<td>10</td>
<td>warnock</td>
<td>US 5</td>
<td>Technicer</td>
<td>1%</td>
</tr>
<table>
然后我想要显示表上的结果只有前五名 但我的表格按收入列排序。
我用这个字符串来查询:
SELECT * FROM table ORDER by score DESC, income ASC LIMIT 0,5
但我的结果是分数而不是收入。
我希望桌子按收入排序,只有前5名得分
对此有何看法?
感谢您的进步。
答案 0 :(得分:1)
我认为你问如何限制从sql发回的结果?
将ORDER by score LIMIT 0,5
放在查询的末尾
编辑:
SELECT * FROM table ORDER by score,income DESC LIMIT 0,5
答案 1 :(得分:0)
如果你要显示前5名的分数,你必须用'得分'排序表而不是收入。您可以使用LIMIT 0,5将前5个列入表中。
答案 2 :(得分:0)
我想用sql查询然后把数据返回 ORDER BY得分为LIMIT 0,5 在你的SQL查询结束时。
或者,如果您想对HTML表格中的数据进行排序,您应该以手动方式进行排序。
祝你好运。 :)
答案 3 :(得分:0)
如果是的话,你的桌子上是否有一个独特的栏目。
SELECT t2.*
FROM (SELECT
uniqueId, score
FROM yourTable
ORDER BY score DESC
LIMIT 0,5) as t1
INNER JOIN yourTable t2
ON t2.uniqueId = t1.uniqueId
ORDER BY t2.income ASC;
尝试首先在SQL浏览器上执行查询,看看结果是否正确。
注意:如果分数不是数字数据类型或者它是字符,则将按字母顺序排序。因此10在升序之前出现在2之前。在这种情况下你可以把得分+ 0,我还没有尝试过其他数据类型。
使用LIMIT 0,5的另一件事只能获得5行。然后根据你的问题,你想显示前五个分数。因此,如果您有10行具有相同的分数,并且它是最高分,则其他五行将不包括在内。
实施例。 15人得分:10,9,8,7,7,7,7,7,7,7,4,4,4,3,1在我看来所有得分大于4的人在前5位。所以LIMIT 0,5不是这样的。我希望这可以帮到你。
答案 4 :(得分:0)
SELECT * FROM table ORDER by score DESC, income ASC LIMIT 0,5
也许你应该这样写:
SELECT * FROM table ORDER by income ASC, score DESC LIMIT 0,5
答案 5 :(得分:0)
只需将初始结果集视为按收入对最终结果进行排序的子查询:
SELECT *
FROM (
SELECT * FROM table ORDER by score DESC, income ASC LIMIT 0,5
) t
ORDER BY income