3

mysql で LIKE ステートメントを使用しようとしています

検索しようとしている値は

元:

(999) 999-9999
(999) 888-8888
(888) 888-8888
(888) 999-9999

検索しようとすると

(888) or (999)

それはうまく表示されますが、私が検索しているとき

999-9999 or 888-8888

値が表示されません

データベース用の php スクリプト:

if($area != "" & $phone != ""){

         $phone = $area.' '.$phone;
         $s_phone = " AND pros_num ='$phone'";

}else if($area == "" & $phone != "")

         $s_phone = " AND pros_num LIKE '$phone%'";
else

         $s_phone = " AND pros_num LIKE '$area%'";
4

3 に答える 3

6

ワイルドカードの場所が間違っています:

$s_phone = " AND pros_num LIKE '%$phone'";

[編集]
http://www.tizag.com/mysqlTutorial/mysqlwhere.phpは、ワイルドカードの使用に関するガイダンスを提供します。

于 2013-01-05T08:23:50.083 に答える
3

パーセント記号を移動する必要があります。

AND pros_num LIKE '$phone%'";

になる

AND pros_num LIKE '%$phone'";
于 2013-01-05T08:23:57.743 に答える
1
$s_phone = " AND pros_num LIKE '%{$phone}%'";

必要な文字列を検索します。その前後に文字があるかどうか。

または:

$s_phone = " AND pros_num LIKE '%{$phone}'";

% 記号はワイルドカードです!

于 2013-01-05T08:25:51.977 に答える