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

mysql:1301

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Wed, 10 Nov 1999 11:12:14 +0900
Subject: [mysql 01301] Re: % を使用したマッチについて

とみたです。

At Wed, 10 Nov 1999 10:37:01 +0900,
Isamu Narimatsu <isamu@xxxxxxxxxx> wrote:

> Perl を使用してワイルドカードを使用して 2\% にマッチさせようと
> して
> 
> $statement="select msg from sems where msg like '%2\%%'";
> $sth=$dbh->prepare($statement);
> $rv=$sth->execute;
> print "RV is $rv";
> 
> としたら RV is 1 となりました。次に

Perl は詳しくないんで execute の戻り値の 1 とか 0E0 ってものの意味はわか
らないんですが、この「'%2\%%'」は "" 中にあるので、Perl が「\」を喰っちゃっ
て、「'%2%%'」と解釈されちゃいませんか?

> $test='2\%';
> $statement="select msg from sems where msg like '%$test%'";
> $sth=$dbh->prepare($statement);
> $rv=$sth->execute;
> print "RV is $rv";
> 
> としたら、 RV is 0E0  となりました。次に

で、この場合は「'2\%'」がちゃんと MySQL にわたると思うんですが、今度は 
LIKE が「\」を喰っちゃって、「2%」を含む文字列を検索しちゃうと思います。

> 変数 $test の値はどのようにすれば良いのでしょうか?

$test='2\\\%' としてみてはどうでしょう?

--
とみたまさひろ <tommy@xxxxxxxxxx>

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

      1298 1999-11-10 10:37 ["Isamu Narimatsu" <i] % を使用したマッチについて              
      1299 1999-11-10 10:55 ┣[Seiji Tateyama <tate]                                       
      1300 1999-11-10 11:06 ┃┗[Seiji Tateyama <tate]                                     
      1303 1999-11-10 11:25 ┃ ┗[Seiji Tateyama <tate]                                   
->    1301 1999-11-10 11:12 ┣[とみたまさひろ <tomm]                                       
      1302 1999-11-10 11:22 ┗[山中 茂樹  <yshigeki]