みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQLで、日付最大のレコード抽出

MySQLをJAVAで使っています。

指定キーの中で、一番日付の大きなレコード項目全てを
取り出したいのですが、
下記SQLだと、何も抽出されません。

何が間違っているのでしょうか?
さらに、もっと簡単なSQL文はないでしょうか?

SELECT * FROM food
WHERE (food_id = 1) AND (food_name = 'みかん')
AND
(food_id = (SELECT MAX(date) FROM food WHERE (food_id = 1) AND (food_name = 'みかん')))



与える検索キー項目は、food_id=1, food_name=みかん

foodテーブル例

food_id  food_name   date
---------------------------------
1     みかん    2015-01-01
1     みかん    2015-02-01
1     みかん    null
1     みかん    2015-04-01
2     きんめだい  2015-01-01
2     じんたん   2015-02-01
2     コロッケ   2015-02-01

投稿日時 - 2015-07-15 19:49:39

QNo.9012859

困ってます

質問者が選んだベストアンサー

LIMIT句を使えば、もっと簡単に出来るよ。

SELECT TOP 1 *
FROM food
WHERE food.food_id=1
ORDER BY food.entry_date DESC;

つまり、DESCで並び変えて先頭を抽出するだけ。

MySQL LIMIT で検索を!

投稿日時 - 2015-07-15 19:59:57

お礼

ご回答ありがとうございます。
これなら、確実にで、簡単ですね。

SQLは、同じ目的を達成させるのに、
人によりかき方が違うので、難しいですね。

これでやってみます。

大変たすかりました。
ありがとうございます。

投稿日時 - 2015-07-15 20:10:08

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

何と何を比較してんだ。

投稿日時 - 2015-07-15 19:56:00

お礼

みかんと、きんめだい を比較しています。
これじゃ、くだものと、魚だから、成分が違うから、一致しないのかな?

投稿日時 - 2015-07-15 20:01:20

あなたにオススメの質問