[前][次][番号順一覧][スレッド一覧]

mysql:15638

From: 亀田義裕 <亀田義裕 <kameda.sbng@xxxxxxxxxx>>
Date: Thu, 6 Oct 2011 14:51:25 +0900
Subject: [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@xxxxxxxxxx>:
> こんばんは、平塚です。
>
> On Tue, 4 Oct 2011 17:43:06 +0900
> 亀田義裕 <kameda.sbng@xxxxxxxxxx> 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@xxxxxxxxxx
>
>
>
>

[前][次][番号順一覧][スレッド一覧]

     15636 2011-10-04 17:43 [亀田義裕 <kameda.sbn] collationについて質問                   
     15637 2011-10-04 21:01 ┗[HIRATSUKA Sadao <hir]                                       
->   15638 2011-10-06 14:51  ┗[亀田義裕 <kameda.sbn]