gpt4 book ai didi

mysql - 选择特定列具有最高值的行

转载 作者:行者123 更新时间:2023-11-29 19:10:33 25 4
gpt4 key购买 nike

正如您在标题中所看到的,我需要 SQL 查询(MySql)来获取特定列具有最大值的行。

所以我需要选择 fav 具有最高值的行。这意味着它比 defroptipuio 更大。在我的例子中,它应该是第 3 行。下面你可以看到我的 sql 表的一部分

我尝试过这个查询,但在我看来,20 条记录的速度非常慢(0,009 秒),任何其他查询都需要 max。 0,003秒。

SELECT id FROM table WHERE fav>def AND fav>rop AND fav>tip AND fav>uio

有没有更好的办法呢?谢谢

表格

table td {padding:4px 8px}
<table border="1">
<tr>
<td>id</td><td>fav</td><td>def</td><td>rop</td><td>tip</td><td>uio</td>
</tr>
<tr>
<td>1</td><td>293</td><td>331</td><td>773</td><td>225</td><td>982</td>
</tr>
<tr>
<td>2</td><td>123</td><td>533</td><td>224</td><td>111</td><td>632</td>
</tr>
<tr style="background-color:lightblue">
<td>3</td><td>982</td><td>398</td><td>182</td><td>321</td><td>222</td>
</tr>
<tr>
<td>4</td><td>343</td><td>765</td><td>700</td><td>901</td><td>300</td>
</tr>
</table>

最佳答案

您必须对这种类型的查询进行全表扫描。然而,20 行的性能不应被视为整体性能的指导。数据库旨在处理更大的查询,而 0.009 秒对于人类时间范围来说相当小。

我认为没有办法解决这个问题。

您可以使用greatest()简化查询:

SELECT id
FROM table
WHERE fav > GREATEST(def, rop, tip, uio);

如果我必须猜测,这会稍微减慢查询速度。

关于mysql - 选择特定列具有最高值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43117649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com