1

テーブルスキーマ

id              date
----            -------
1020            1990-02-15
1020            1990-02-15
1060            1990-02-15
1020            1990-03-15
1020            1990-03-15
1020            1990-02-10

同じ日付で、id=1020の日付形式yyyy-mm-ddである最後に挿入されたレコードを選択するためのクエリ

4

4 に答える 4

2

最後の記録では、あなたが最新の日付を持つものを意味すると思います...。

select * from table where id=1020 order by date desc limit 1
于 2012-09-12T05:04:06.663 に答える
2

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は現在フォーマットされていません(として保存されたと思いVARCHARSTR_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
                 )
于 2012-09-12T05:06:17.450 に答える
0

これは役に立ちますか?

select max(date) from table where id=1020;
于 2012-09-12T05:16:01.777 に答える
0

で試してみてください

SELECT * FROM schema WHERE id=1020 ORDERBY date DESC limit 1;

またはあなたが好きな日付の最大を選択してください

SELECT MAX(date) from schema WHERE id = 1020;
于 2012-09-12T05:38:06.260 に答える