[英]Select row where specific column has the highest value
如標題所示,我需要SQL query(MySql)來獲取特定列具有最大價值的行。
因此,我需要選擇fav
具有最高值的行。 這意味着它比def
, rop
, tip
和uio
。 在我的情況下,它應該是行號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.