hamada
bungu****@leo*****
2006年 5月 9日 (火) 08:53:30 JST
こんにちわ。 # なんか、1人で(びみょーに見当違いの方向で?)納得されちゃってて、 # もはやちとツっ込みづらいのですが…(^_^;) On Tue, 9 May 2006 00:26:11 +0900 "KO-JI" <notto****@mbn*****> wrote: > こんなことってあるのですか? それ、どっかでBINARY型使ってたりしません? http://dev.mysql.com/doc/refman/4.1/ja/string-comparison-functions.html > mysql> SELECT 'abc' LIKE 'ABC'; > -> 1 > mysql> SELECT 'abc' LIKE BINARY 'ABC'; > -> 0 ということで、BINARY型になってるとlikeでも半角英字の大文字小文字を区別す るらしーんですけど。 > とりあえず今後は小文字を使うようにします! /catalog/includes/functions/general.php > function tep_parse_search_string($search_str = '', &$objects) { > $search_str = trim(strtolower($search_str)); ^^^^^^^^^^ なので、この部分が上記のままなら「半角英文字は強制的に小文字に変換されて 検索される」ハズです。小文字云々はそのせいかと。 そして、osCは対象のカラムがBINARY型であるとは想定してない=「MySQLが大文 字小文字を区別しない」と決め打ちしてますんで、 「そうではない」(=半角英字の大文字小文字を区別しちゃう) ならそれなりにコードに手を加える必要があるのでは? とりあえず、上記を「strtoupper」にしとけば「強制大文字化検索」ってことに なりますが、お勧めしません。 BINARY型を止められるならそれが一番良さそうな気がしますが、おそらく日本語 関連の問題で「わざわざBINARY指定してる」んだろうなぁ…。 はまだ