2010-11-22 19 views
2

イム:私はフィールド=「会社名123」を持っていると私は検索した場合MySQLのLIKE =不正確な検索では、私の検索のための単純なクエリ使用して

SELECT * FROM table WHERE field LIKE '%term%' 

は、当社123のために結果がnullである

方法私はこれを改善することはできますか?

$newTerm = str_replace(' ', '%', $term); 
$sql = "SELECT * FROM table WHERE field LIKE '%$term%'" 

$r = mysql_qery($sql, $conn); 
+0

:/ /dev.mysql.com/doc/refman/5.1/en/fulltext-search.html –

答えて

1

を交換しようとし%で、スペースを置き換え用語はシーケンス

2

である場合にのみ見つかります一致。全文検索機能をチェックアウトすることができます。

+0

ここでは問題はありません。最初に質問を読んでください(ただし、あなたはrですight、問題のコードはうまくいきませんが、私はそれがちょうどタイプミスであると確信しています)。 **編集:** brain_damageは質問 – oezi

+0

のコードを修正しました。最初に投稿したので、iveはそれを変更しました –

+0

私は 'concat( '%'、$ term、 '%')'(ここでどのPHP構文が使用されているかを確認してください)、SQLインジェクションに苦しんではいけません。 – Danosaure

0

はスペースに
あなたはにためには、当社と123%の間を配置する必要があり $searchtext =str_replace(' ','%',$searchtext);

0

あなたはできます

  • は言葉にあなたの検索語を分割し、(あなただけの部品のいずれかを検索する場合や論理和)の論理積をたくさんしてクエリを作成、それのうち(醜いが、私は」あなたの用語(移動するための方法)でこの%と多くの時間)
  • 'を置換「(スペース)(ワイルドカードのthats)見てき
はMySQLのhttpで全文検索についてお読みください
関連する問題