簡體   English   中英

選擇特定列具有最高值的行

[英]Select row where specific column has the highest value

如標題所示,我需要SQL query(MySql)來獲取特定列具有最大價值的行。

因此,我需要選擇fav具有最高值的行。 這意味着它比defroptipuio 在我的情況下,它應該是行號3。下面您可以看到我的sql表的一部分

我嘗試使用此查詢,但在20條記錄上似乎很慢(0,009s),其他任何查詢最多花費。 0,003s。

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);

如果我不得不猜測,這會稍微減慢查詢速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM