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]