がるの健忘録 このページをアンテナに追加 RSSフィード

2007-12-07

[][]アリエナイ 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. 

the を付ける場合 - 既存のインスタンスへのポインタ

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コレクションクラスを指しているため、本一般のことを指します。

おもしろひ。

なんていうかものすごく直感的………って思うあたりどうなんだろう?(笑