例如,如果我的查詢返回兩行或更多行,我想選擇具有最近日期的行。選擇具有特定列的最大值的行
我在做這樣的事情:
SELECT * FROM Table1 WHERE Name=Mark AND MAX(TIMESTAMP(date(str_to_date(DATE_REGISTERED,'%d/%m/%Y'))))
返回的錯誤是: #1111 - 無效使用組功能的
例如,如果我的查詢返回兩行或更多行,我想選擇具有最近日期的行。選擇具有特定列的最大值的行
我在做這樣的事情:
SELECT * FROM Table1 WHERE Name=Mark AND MAX(TIMESTAMP(date(str_to_date(DATE_REGISTERED,'%d/%m/%Y'))))
返回的錯誤是: #1111 - 無效使用組功能的
您應該使用通過聲明的順序:
SELECT * FROM Table1 WHERE Name=Mark
order by str_to_date(DATE_REGISTERED,'%d/%m/%Y') DESC LIMIT 1
要限制你的結果只有最近(根據您的示例,根據名爲DATE_REGISTERED的字段),您應該做
SELECT * FROM Table1 WHERE Name='Mark' ORDER BY STR_TO_DATE(DATE_REGISTERED,'%d/%m/%Y') DESC LIMIT 1
+1。 。 。但是您應該將查詢更改爲'order by date_registered',因爲這是問題中的示例,並將引號放在'Mark'的周圍,以便語法正確。 – 2013-03-24 22:00:57
但由date_registered命令將按字母順序對行進行排序,我猜 – 2013-03-24 22:03:32
良好的通話。已編輯來反映這一點。 – 2013-03-24 22:03:47
謝謝!正是我想要的:) – Alex 2013-03-24 22:15:29