2012-07-22 81 views
0

我有記錄'username''balance'的表格。如何顯示最高餘額的10個用戶名?顯示餘額最高的10個記錄

額外:如何顯示,但只有當他們有超過1.000.000 $?

我的表:

enter image description here

+2

這些是非常基本的SQL問題。你應該從閱讀一本關於它的書開始。 – 2012-07-22 10:53:12

回答

0

這些都是非常基本 SQL語句。你可能應該找到一個好的SQL教程,並花費一些時間玩各種SELECT子句。你的情況:

  • 只是爲了你的降序balance和限制10條記錄的結果嗎?

    SELECT username FROM mytable ORDER BY balance DESC LIMIT 10 
    
  • 與平衡添加WHERE條件來篩選只有那些記錄在你指定的閾值:

    SELECT username FROM mytable WHERE balance >= 1000000 
    
+0

它應該是:''SELECT * FROM mytable ORDER BY'balance'DESC LIMIT 10'「。額外顯示,但只有當他們有超過1000.000美元? – IlikeITalot 2012-07-22 10:52:01

+0

PS:順便說一句,這不是我所要求的。它只顯示前10條記錄,而不是最豐富的用戶名。 – IlikeITalot 2012-07-22 10:54:08

+1

@IlikeITalot:如果你以這種方式引用你的標識符,MySQL會將它們評估爲字符串文字,它不會給出你想要的結果。是的,它會顯示10條記錄,但它們將會是所需的10個最豐富的用戶名。 – eggyal 2012-07-22 10:55:07

0

試試這個:

 select username, balance from table_name where balance >= 1000000 order by balance DESC LIMIT 10 
+0

#1064 - 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第一行使用''iConomy'ORDER BY'balance'DESC LIMIT 10'附近的正確語法 – IlikeITalot 2012-07-22 10:56:13

+1

@LolCoder如果您想要轉義表名和列名,請不要使用單引號,而是使用反引號(**'**) – 2012-07-22 10:58:05

+0

@JohnTotetWoo:謝謝.... – 2012-07-22 11:06:15

0
SELECT username FROM mytable WHERE balance>1000000 ORDER BY balance DESC LIMIT 10 
2

你只需要排序天平第一,並將結果限制爲10:

SELECT `username`, `balance` 
    FROM `table_name` 
ORDER BY `balance` DESC 
LIMIT 10