2012-01-23 9 views
-4

変数で定義された文字列をMySQLテーブルのカラムで検索したいと考えています。 この構文はどのようにしてこのように見えますか?私は私の頭の中でそれを想像してどのようにtablのフィールド/カラムで文字列を検索する

:それが発見された場合

$var = 'this is a string'; 

$query = 'SEARCH column IN table for ' . $var; 

数はPHPを使用して文字列に追加されますと$varになるだろう:

$var = 'this is a string2'; 

、これはどのように行われていますか?独自の方法でデータベースのおかげ

+0

データベースに特定の値を照会する方法は簡単ですか? – Tanoro

答えて

1
$str = "this is a string"; 

$getstringexists = mysql_query("SELECT * FROM table WHERE column LIKE '$str'", $connection); 
$string_exists = mysql_num_rows($getstringexists); 

if($string_exists){ 
    $str .= "$sting_exists"; 
} 

Connectには、私はいつも私のデシベルの情報が含まれている私のクエリの最後に$接続​​のような変数を使用します。

クエリが5行を返す場合は、新しい$ strを "this is a string5"にする必要があります。

+0

MySQLでは一般に、文字列の比較を行うためにREGEXPの代わりにLIKEを使用することが望ましいです。 –

+0

ありがとう、まだ私はまだ学んでいる参照してください:)しかし、それはなぜですか?スピードまたはより良いマッチングのために? – bowlerae

+1

速度。ほとんどの開発者にとっては直感的ではないので、私はそれを言いました。彼らは他の多くの言語(JavaScript、Perlなど)で非常に強力ですので、開発者は当然MySQLでREGEXPを使いたいでしょうが、MySQLのREGEXPの実装は特に悪く、最後の手段としてのみ使用するべきです。たとえば、 'LIKE 'STRING%'列は利用可能であればインデックスを使用しますが、REGEXPはインデックスを使用しません(少なくとも5.1以降は開発者が改善を求めていることを知っています)。興味深い場合は、簡単にGoogleを検索して見つけることができる他のパフォーマンス上の問題もいくつかあります。 –