一回も披露したことのない豆知識

workのテーブルに下記のデータが入っている。
この時に、end_of_recordで分離されているので最初のidがここでは1か
ら4迄をselect句を使って抽出をしたい。

mysqlのselect * from work where ...
で、何とか抽出をしたいのですが。構文が分かりません。

sqlの回答をお願いします。

+------+--------------------------------------+
| id | mail |
+------+--------------------------------------+
| 1 | 最初のinsert into の実験 |
| 2 | 上手く行ったが、こんなもんでは無い。 |
| 3 | 途中からだが、上手く行くのか。 |
| 4 | 今度はもうバッチリ見たいだ。 |
| 5 | end_of_record |
| 6 | これが最後のテストデータです。 |
| 7 | 始めて、途中でエラーが出たが。 |
| 8 | 何か知らんが、2回目でエラーになる。 |
| 9 | ここで動かない理由は何なんだ。 |
| 10 | ここは気にせずに前を向いて歩こう。 |
| 11 | end_of_record |
+------+--------------------------------------+

A 回答 (1件)

ずいぶん奇妙なデータ管理ですが


例示のデータを利用するならこんな感じ

select * from work
where id<=
(select min(id) from work where mail='end_of_record')

普通は、同じメールであれば同じidを振るとか
一行ごとに分けずにtext形式などで処理するとかじゃない?
    • good
    • 0
この回答へのお礼

有難う御座います。
このデータはメールボックスの内容です。細かい所は似せてあります。
実際とは違いますが。勉強の教材として使いました。そこで分からない
所があった物ですから。

実際のデータはこれはメールヘッダーとデータ部が繰り返し出て来ま
す。データの件数としては100万行はありますが。

有難う御座いました。

お礼日時:2016/01/12 15:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!