部分一致検索ができなくて困っています。
※部分一致検索ができなくて困っています。
※Apache2.0.52 + MySQL 5.0.51a + PHP5.2.8の環境です。
" sprintf "を使った、下記コードで部分一致検索をするには、どのようにしたらい
いのか、どなたかご教授いただけないでしょうか。
--------------------------------------------------------------------------
$u_address = $_REQUEST['u_address'];// POSTで送られてきた値を受け取り変換。
検索fieldは、"u_address"です。
--------------------------------------------------------------------------
$query = sprintf("SELECT * FROM dive_free_tbl_ WHERE u_address = '%s' ORDER BY serial DESC", $u_address);
※上記のコードだと、"完全一致"にて検索となります。(部分一致の検索にしたい)
下記のコードに変更して、見たのですがエラーにでダメでした。(WHERE以下を抜粋)
WHERE u_address = '%s' ORDER BY serial DESC", LIKE'%$u_address%');
WHERE u_address = '%s' ORDER BY serial DESC", LIKE'[%$u_address]%'');
WHERE u_address = '%s' ORDER BY serial DESC", LIKE'{%$u_address}%'');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'%$u_address%');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'[%$u_address]%'');
WHERE u_address '%s' ORDER BY serial DESC", LIKE'{%$u_address}%'');
" sprintf "を使わず、下記のコードでは問題なく部分一致検索ができます。
--------------------------------------------------------------------------
$sql = "SELECT * FROM dive_free_tbl_ WHERE u_address LIKE'%東%'";
--------------------------------------------------------------------------
何方かご教授いただきたく、よろしくお願いします。
以上
補足
すみません。題意の説明に語弊があったようです。 「関係ない文字~アレグロ~関係ない文字」 という例は、実例にすると、 データが id name 1 この曲はアレグロの速さです。 とあるとき、 name LIKE "%allegro%" と検索して、上記のid:1のレコードがヒットするのです。 つまり、MySQL内で、「allegro」という文字列を「アレグロ」と勝手に変換して検索してくれているのではないか?というのが題意です。 すみません。説明不足で