2011年10月 4日

[mysql 15637] Re: collationについて質問

こんばんは、平塚です。

On Tue, 4 Oct 2011 17:43:06 +0900
亀田義裕 <kameda.sbng@xxxxx> wrote:

> collationについて、想定と違う動作に遭遇しました。どなたか動作の理由を
> ご存知であれば、教えていただけないでしょうか?

> * like検索ではなく、 = を用いて検索すると、マッチする


マニュアルの11章に記載されていました。

11.5.1. String Comparison Functions
http://dev.mysql.com/doc/refman/5.1/en/string-comparison-functions.html

| Per the SQL standard, LIKE performs matching on a per-character basis,
| thus it can produce results different from the = comparison operator:

「SQL標準に則り、LIKEは1文字ごとに比較を行うので
=比較演算子とは異なる結果を生成することがあります。」

ドイツ語の例がありますが、半角カタカナの濁点の扱いも
これと同じ状況ではないかと思います。


SQL92によれば、
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt (ドラフト版)

「M LIKE Pと書いたときに
Pのi文字目に対応するものが、必ずMに存在すること」
という流れで照合を行うようです。

| 5) Case:
|
| a) If M and P are character strings whose lengths are variable
| and if the lengths of both M and P are 0, then
|
| M LIKE P
|
| is true.
|
| b) The <predicate>
|
| M LIKE P
|
| is true if there exists a partitioning of M into substrings
| such that:
|
| i) A substring of M is a sequence of 0 or more contiguous
| <character representation>s of M and each <character repre-
| sentation> of M is part of exactly one substring.
|
| ii) If the i-th substring specifier of P is an arbitrary char-
| acter specifier, the i-th substring of M is any single
| <character representation>.

※ arbitrary character specifier: _ のこと

| iii) If the i-th substring specifier of P is an arbitrary string
| specifier, then the i-th substring of M is any sequence of
| 0 or more <character representation>s.

※ arbitrary string specifier: % のこと

| iv) If the i-th substring specifier of P is neither an arbi-
| trary character specifier nor an arbitrary string speci-
| fier, then the i-th substring of M is equal to that sub-
| string specifier according to the collating sequence of
| the <like predicate>, without the appending of <space>
| characters to M, and has the same length as that substring
| specifier.
|
| v) The number of substrings of M is equal to the number of
| substring specifiers of P.
|
| c) Otherwise,
|
| M LIKE P
|
| is false.


よろしくお願いします。

--
平塚貞夫 hiratsuka.sadao@xxxxx


投稿者 xml-rpc : 2011年10月 4日 21:01
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106639
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。