2011-03-18 23 views
0

我有這個疑問EDITED ::不同的多個字段

SELECT distinct username, time 
FROM `sadaat`.`wp_loginlog` 
where username != 'admin' or username is not null 
order by time DESC 
limit 0,20 

這並不給我不同的記錄。如果我抽出時間,那就是了。我能做些什麼才能在那裏獲得不同的結果。

如果我使用

SELECT distinct username 
FROM `sadaat`.`wp_loginlog` 
where username != 'admin' or username is not null 
order by time DESC 
limit 0,20 

然後,因爲它不會選擇時間字段

+0

它應該給你所有用戶名和時間的獨特組合。我們可以看到它的功能嗎? – Bittrance 2011-03-18 18:34:20

+0

它提供了一切......所有where子句中的記錄。 – Autolycus 2011-03-18 18:36:49

+0

請向我們展示完整的輸出,但要確保你真的知道DISTINCT指的是什麼:) – ArtoAle 2011-03-18 18:37:49

回答

2

DISTINCT子句是指所有屬性SELECT子句中,我不能得到時間的價值,而不僅僅是用戶名。 (實際上,具有不同的用戶名和非獨特的時間是沒有意義的)。

舉例來說,如果你有相同的用戶名,他們將始終顯示

也許,不同的時間行,如果你想了解有關每個單個用戶時的一些信息,你可以看看group by clause

+0

實際上請查看已編輯的問題 – Autolycus 2011-03-18 18:55:27

+0

,在您的表中爲每個用戶名我猜是定義了更多的一次,對不對?你能解釋一下我們想要挑選的時間嗎? (更高,更低,平均值?) – ArtoAle 2011-03-18 18:59:37

2

您當前的查詢不起作用,因爲distinct會考慮您選擇的所有列。

如果你想不同的用戶名,而包括time列,您可以使用group by與集料爲time列,是這樣的:

SELECT username, max(time) 
FROM `sadaat`.`wp_loginlog` where username != 'admin' or username is not null 
group by username 
order by time DESC limit 0,20 
+0

最大時間將爲您獲得最大時間recors。我想要的是具有不同的名稱,然後選擇時間顯示在我的代碼中。 – Autolycus 2011-03-18 18:57:04

+0

你想選擇哪個時間?如果你有多個時間,你必須選擇他們選擇哪一個(如果你想使用不同的)。如果你想抓住他們所有人,你不能使用不同的也不能分組。 – ArtoAle 2011-03-18 19:05:19

0

這裏是沒有的伎倆

SELECT * 
    FROM `sadaat`.`wp_loginlog` 
    where username != 'admin' or username is not null 
Group By username 
    order by time DESC 
    limit 0,20 
相關問題