2011年10月 6日

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

平塚様

亀田です。

> マニュアルの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文字ごとに比較を行うので
> =比較演算子とは異なる結果を生成することがあります。」

なるほどです。
LIKE検索の制限と考えて、collationとは別の方法で対応するように検討致します。
ありがとうございました。


2011年10月4日21:01 HIRATSUKA Sadao <hiratsuka.sadao@xxxxx>:
> こんばんは、平塚です。
>
> 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月 6日 14:51
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106784
トラックバック
コメント
コメントする




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