2007-12-07
■[DB][MySQL]アリエナイ orz
http://dev.mysql.com/doc/refman/4.1/ja/char.html
CHAR 型と VARCHAR 型のカラム値のソートと比較は、テーブルの作成時に BINARY 属性が指定されている場合を除いて、ケース非依存方式で行われます。
………………………………………え゜?
おぞましい予感を前提に、実験君。
まずは材料。
create table test (
a varchar(100),
b text,
c varchar(100) binary,
d text binary
);
insert into test(a,b,c,d) value('aaa', 'aaa', 'aaa', 'aaa');
insert into test(a,b,c,d) value('AAA', 'AAA', 'AAA', 'AAA');
insert into test(a,b,c,d) value('bbb', 'bbb', 'bbb', 'bbb');
insert into test(a,b,c,d) value('BBB', 'BBB', 'BBB', 'BBB');
ここで質問。
select * from test where a='aaa';
select * from test where b='aaa';
select * from test where c='aaa';
select * from test where d='aaa';
それぞれの結果を予想してください。
旋律…もとい、戦慄の、こたえ。
mysql> select * from test where a='aaa'; +------+------+------+------+ | a | b | c | d | +------+------+------+------+ | aaa | aaa | aaa | aaa | | AAA | AAA | AAA | AAA | +------+------+------+------+ 2 rows in set (0.00 sec) mysql> select * from test where b='aaa'; +------+------+------+------+ | a | b | c | d | +------+------+------+------+ | aaa | aaa | aaa | aaa | | AAA | AAA | AAA | AAA | +------+------+------+------+ 2 rows in set (0.00 sec) mysql> select * from test where c='aaa'; +------+------+------+------+ | a | b | c | d | +------+------+------+------+ | aaa | aaa | aaa | aaa | +------+------+------+------+ 1 row in set (0.00 sec) mysql> select * from test where d='aaa'; +------+------+------+------+ | a | b | c | d | +------+------+------+------+ | aaa | aaa | aaa | aaa | +------+------+------+------+ 1 row in set (0.00 sec)
……………まてや( ゜Д゜)ゴルァ!
知らなかった………orz
■[その他]英語の冠詞の使い方がわかりやすい!!
NAL-6295さんの
http://d.hatena.ne.jp/NAL-6295/20071206/p1
経由。
http://code.nanigac.com/source/wiki/view/398
a/an を付ける場合 - インスタンスを生成
I have a book.この文では book クラスのインスタンスを生成し、そのインスタンス自体のことを指しています。メモリやヒープが確保されているため、当然実体が存在します。
ちなみに複数形の名詞の場合にインスタンス生成する場合には some を付けることが多いようです。
例: I have some books.I also have the book. I also have the books.既に生成された book インスタンスへのポインタとなります。対象インスタンスが一つならthe+名詞で、複数ならthe+名詞(s)となります(英語の語感としては、後者は the じゃなくて these や those を使う方が自然な場合の方が多いかも)。
また、別々に生成されたインスタンスをグルーピングして一つにまとめて参照することもできます。
Mr. A: I bought a funny book. Mr. B: I also bought a funny book. Mr. C: So did I. Mr.Z: I read the books 10 years ago.当然ですが、生成していないものを指すことはできませんので、生成してもいないものをいきなり the を使って指すことはできません。
I have the apple. (apple インスタンスは生成してないので、何のことを指しているかわからない)ただしインスタンスは自分自身で生成する必要はありません。相手(や読者)が容易に特定でき、実体があるものであればtheで参照することができます(容易かどうかは、「アレ」と言って通じるかどうかで判断できるのではないかと)。
例えば地球ができた時には生成されていた(はず)の太陽(the Sun)や月(the moon)はtheを付けて参照します。また、インターネットは the net などと呼称されることがありますね。
冠詞を付けない場合 - クラス/構造体自体
I like books.これはbookクラス自体を指しているのではなく、bookクラスを複数保持するbooksコレクションクラスを指しているため、本一般のことを指します。
おもしろひ。
なんていうかものすごく直感的………って思うあたりどうなんだろう?(笑