人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLのSELECT文について質問です。
下記のようなテーブルがあったとして、各月の一番最初のidを取り出すにはどんなSELECT文が適切でしょうか。

date | id
2009-01-01 | 100
2009-01-03 | 99
2008-12-01 | 98
2008-12-02 | 97
2008-11-01 | 96
2008-11-02 | 95

以上、よろしくお願いいたします。

●質問者: n_maco2
●カテゴリ:ウェブ制作
✍キーワード:2008-11-02 2008-12-01 2009-01-01 2009-01-03 MySQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● chuken_kenkou
●56ポイント ベストアンサー

MySQLの質問をする場合、バージョンを明記してください。



と、バージョンにより機能が大きく違い、実装方法が異なってきます。


各列のデータ型も、明示してください。date型なのか、varcharなどなのかにより、利用できる機能が違ってきます。


母体データ、得たい結果も、明示してください。

「一番最初」といった概念は、システムによって違ってきます。


また、年月などを抽出し、それをその後、条件式などに活用したいのかどうか、ただ単に表示せきればいいのかといったことで、使うべき関数やクエリも違ってきます。


提示された条件から、最低限にできそうなSQLを提示しておきます。


select
 date_format(`date`,'%Y%m') as yyyymm,
 min(id)
 from t1
 group by yyyymm

MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.3.4 日付と時刻関数

◎質問者からの返答

ご指摘ありがとうございます。

すみません、説明不足すぎました。

提示いただいたSQL文で私の要件としても達成できそうな感じです。

再度必要になった際には改めて要件を明確にして質問させていただきます。

ありがとうございました〜


2 ● pahoo
●14ポイント

要件が分からなかったので、以下に2通りの回答を書きます。

各月の1日の id を取り出す

select id from c where date like '%-01%' order by date asc;

ある月の最初の日の id を取り出す

select id from c where date like '%-01-%' order by date asc limit 0,1;

※上は1月の場合です。他の月の場合は、like '%-01-%' の部分を月に合わせて変更してください。


参考サイト

◎質問者からの返答

ご回答ありがとうございました

質問がわかりにくくて申し訳ございません。

先にご回答いただいた方のSQLで対応できそうでした。

お手数をおかけいたしました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ