2012-12-23 79 views
3

我需要選擇從表列表字段messageusername其中list_id = 1(也可以是2個或5等)以最小的數值(分鐘(number))。我該怎麼做? 我試了一下:MySQL的選擇具有最小

SELECT `message`,`username` FROM `list` WHERE `list_id`=2 AND min(`number`) 

但它不能正常工作。

+1

看排序和限制。按'編號'排序並將其限制爲1可能是您要查找的內容。 'MIN'是一個聚合函數,它將與GROUP BY' – dakdad

回答

4

嘗試這樣

SELECT `message`,`username` 
FROM `list` 
WHERE `list_id` = 2 
ORDER BY `number` ASC 
LIMIT 1 
+1

+1一起用於簡化,除了我不確定OP是否始終只希望一條記錄符合條件... – PinnyM

+0

您有錯誤在你的SQL語法中;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行'ORDER BY'number' ASC LIMIT 1'附近使用正確的語法 – valera5505

+0

將代碼添加到 – yAnTar

0
SELECT 
    a.* 
FROM list 
INNER JOIN (
    SELECT 
      `message`, 
      `username`, 
      MIN(`number`) 
    FROM `list` 
    WHERE `list_id`=2 
    ) as a on a.id = list.id 
+0

沒有GROUP BY子句有效嗎? – PinnyM

+0

@PinnyM MySQL不需要「GROUP BY」子句。但是,如果不包含,結果可能是不尋常的 – Taryn

+0

然後推斷GROUP BY?在這種情況下,這不會做OP所需要的。 – PinnyM