2017-09-15 48 views
-1
tableName 

|name | header | date  | 
|--------|--------|-----------| 
|abc  | def | 2016-08-16| 
|pqr  | xyz | 2015-11-20| 

我想寫一個查詢來顯示最早輸入的名稱。如何顯示最早發佈的元素?

select name from tableName where date(date) = min(date)遇到錯誤。

我在網上搜索了答案,但找不到我在找的東西。任何有關此事的建議和幫助都會受到歡迎。

+0

請參閱:[爲什麼我應該爲我認爲是非常簡單的SQL查詢提供一個MCVE?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an -mcve-for-what-seems-to-what-seems-a-very-simple-sql-query) – Strawberry

+0

這裏的答案適用於你的問題(swap max with min)https://stackoverflow.com/questions/19432913/select-info-from-table-where-row-has-max-date/19433107#19433107可能會矯枉過正,寶寶的答案很好。 – Twelfth

回答

0

您可以使用

select name from tableName where date(date) = (select min(date) from tableName) 
3

使用order bylimit

SELECT `name` 
FROM tableName 
ORDER BY `date` 
LIMIT 1 

注意name以及datemysql keywords,所以你不應該使用它們作爲列名。

+0

它們可能是關鍵字,但它們不是保留的,所以它們在列表中用作列名是很好的。 – Strawberry

+0

是的,這就是爲什麼我寫**不應該**。 @草莓 。確實沒有錯誤,但我儘量避免使用關鍵字,因爲它只是令人困惑...選擇日期(日期)聽起來很奇怪。 – baao

+1

那麼確定,因爲在這種情況下'日期'是一個日期時間;-) – Strawberry