スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
タグ :

MySQLを使って分かったこと

 2008-11-15
MySQL(ver5)をDBで使用していますが、使っていて分かったことがあります。
それは、条件で使用する順番と、返答順番は一致しないということです。
どういうことかというと、以下のSQLを実行すると

select id,link from movie where id in('101341','101342','101343','101345','101344','101346','101376')

101341・・・
101342・・・
101343・・・
101344・・・
101345・・・
101346・・・
101376・・・



idの順番で返ってきます。
条件は
where id in('101341','101342','101343','101345','101344','101346','101376')
として、341,342,345,344,346,376と順番はでたらめです。だけど結果は順番に返ってきます。
これは、直感に反しいると思いませんか?
つまりはソートで言う、安定性がないことになります。普通に言えば要求順番と対応しない
ここで動作を確認するため、テストしてみました。
TABLE:test
id_tb:int (primary key)
id:int
test:char
以上の設定にして以下のようにデータを挿入しました。

+-------+----+------+
| id_tb | id | test |
+-------+----+------+
| 1 | 5 | test |
| 2 | 4 | test |
| 3 | 3 | test |
| 4 | 5 | test |
| 5 | 6 | test |
| 6 | 7 | test |
| 7 | 8 | test |
| 8 | 9 | test |
| 9 | 10 | test |
| 10 | 1 | test |
+-------+----+------+


予想としては、プライマリキーの順番で返答すると思ったので、以下のコマンドを実行しました。

mysql> select * from test where id in(1,2,3);
+-------+----+------+
| id_tb | id | test |
+-------+----+------+
| 3 | 3 | test |
| 4 | 2 | test |
| 10 | 1 | test |
+-------+----+------+
3 rows in set (0.00 sec)


プライマリキーのid_tb順になっています。
そこでプライマリキーを条件に使用します。

mysql> select * from test where id_tb in(1,2,3);
+-------+----+------+
| id_tb | id | test |
+-------+----+------+
| 1 | 5 | test |
| 2 | 4 | test |
| 3 | 3 | test |
+-------+----+------+
3 rows in set (0.00 sec)


id_tb順に返答しています。
そこでid_tbで条件をでたらめにします。

mysql> select * from test where id_tb in(5,2,3);
+-------+----+------+
| id_tb | id | test |
+-------+----+------+
| 2 | 4 | test |
| 3 | 3 | test |
| 5 | 6 | test |
+-------+----+------+
3 rows in set (0.00 sec)


順番は昇順になっています。
応答の早さを出すためなのでしょうが、ちょっと気になります。
プログラムによっては順番が大事になりますから気にしないといけませんね。
でも、指定できる方法あるのかな?
条件
where id in(4,2,5,3,1)
結果:
4・・・
2・・・
5・・・
3・・・
1・・・
というように。
スポンサーサイト
タグ :

勉強法は1つじゃない。自分に合う勉強法がある。

 2008-11-02
言われてみれば当たり前ですが、1つの勉強法で絶対の正解が誰にでもある訳じゃないです。
それを再認識させてくれるのが、この本です。

スタディースタイル ライフハックス勉強法 (Dream skill club)スタディースタイル ライフハックス勉強法 (Dream skill club)
(2008/10/15)
佐々木正悟

商品詳細を見る


ちまたでは、有名な人が書いた本、有名でなくても販売部数、資格取得、能力か有徳による実績によって説得力を持たせて、まるで実行すれば自分もうまくできる気にさせてくれます。
TOEIC900点を取った、英会話の塾を経営するまでになった。
年収が何倍になった。

しかし、これらの書籍を多数読めば分かりますが、矛盾が生まれます。
勉強は苦痛でも目的を持って学習をすること!
一方で
勉強は楽しまなければいけない!
これはいったいどっちが正しいでしょうか?
それはどっちも正しいです。ただし、正確に言えば各自によって答えは違います。

何か目的を達成するために、勉強する人はいます。英語がしゃべれないと昇進できないから、勉強をする。そんな人は多いと思います。
一方で、勉強を楽しむことができる人はいます。
研究者素質ですが、分かることが楽しい人です。体の仕組みであったり、心理であったり、ただどんなもであるか分かるだけで満足する人です。

つまり、それぞれの性格・個性に合う勉強法が存在してもおかしくないです。
暗記が得意な人、理解することが得意な人
好奇心旺盛な人、目的達成に喜びを持つ人
独習が好きな人、スクールで習うことが好きな人
がいると思います。

以上を著者は3つの軸として紹介します。
1.暗記型、理解型
2.好奇心型、目的達成型
3.独習型、スクール型

あなたは、どんなタイプかは読んでみることをおすすめします。ただどっちに向いているかは、読書に判断を任せっきりで、判断になる方法が知りたいところです。

ちなみに自分は、理解X目的X学習型が一番強いともいます。
このタイプは場面によって変わりそうなので、またこれが唯一の答えじゃない気がします。場面によってはタイプが変化するような気がします。
タグ :
≪ トップページへこのページの先頭へ  ≫
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。