mysql:15637
From: HIRATSUKA Sadao <HIRATSUKA Sadao <hiratsuka.sadao@xxxxxxxxxx>>
Date: Tue, 04 Oct 2011 21:01:20 +0900
Subject: [mysql 15637] Re: collationについて質問
こんばんは、平塚です。 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]