MySQLなので
SELECT *
FROM table
WHERE id=1020
ORDER BY `date` desc
LIMIT 1
しかし、まだ質問があります。このような記録がある場合はどうなりますか?
1020 1/11/12
1020 1/12/12
1020 1/12/12
1020 1/13/12
それは何を返しますか?
あなたの場合、date
は現在フォーマットされていません(として保存されたと思いVARCHAR
STR_TO_DATE
ます)。そのため、関数を使用して日付に戻し、その表示から目的のフォーマットを使用してフォーマットする必要があります。
SELECT DATE_FORMAT(STR_TO_DATE(`date`, '%m/%d/%y'), '%d-%m-%Y') lastDate
FROM table
WHERE id = 1020
ORDER BY `date` desc
LIMIT 1
更新 1
同じ日付のレコードが必要ですか?この編集を試してみてください。このために、最新の日付を返し、同じ日付を持つサブクエリを作成しました。
SELECT *
FROM tablename
WHERE id = 1020 AND
`Date` = (
SELECT MAX(`date`) maxDate
FROM tableName
GROUP BY `date`
HAVING COUNT(`DATE`) > 1
)