2017-05-16 10 views
0

2つの列の結果を取得するためのクエリを作成しています。私は、クエリは、私が真であるものは何でも結果を得ることができるように、この文字列内のすべてのスペースの後にすべての値を検索するためのSqlクエリ

Select * 
    From mytable 
    Where street LIKE '%family apotheke%' 
    AND/OR mycustomdate LIKE '%14.05' 

のように実行する必要があり、私の検索入力から「家族のApothekeの14.05を」この文字列を送信するときに、私が何を望ん は

です。 列にfamily apothekeが見つかった場合は、date found dateの列をすべて表示し、その結果を表示し、両方の結果が見つかった場合はすべての結果を表示します。これは明らか

なります

希望あなたは、文字列から数値をフィルタリングする必要がありおよび第二あなたは番号なしで文字列を必要とする enter image description here

+1

これは全く意味を成しません。サンプル文字列には2つのスペースがあります。 –

+0

いくつかのサンプルレコードと期待する出力を見せてください。 –

+0

@ Gordon Linoffはい2つの空白はアルファベットと1つはintのような値を持つので、私は文字列を分割して考えることができます。 – Hassaan

答えて

0

まず必要な結果を参照してください、あなたはこの達成することができます:

$str = 'family apotheke 14.05'; 
preg_match_all('!\d+\.*\d*!', $str ,$match); 
echo $number = implode(' ', $match[0]); 
echo "<br />".$filter_str = trim(str_replace($number, '', $str)); 

次のようなクエリを書くことができます:

Select * 
    From mytable 
    Where street LIKE "%$filter_str%" 
    AND/OR mycustomdate LIKE "%$number" 

ANDまたはORを問合せに含めるかどうかは、あなた次第です。

Demo

リファレンス - Extract numbers from a string

+0

okですが、クエリ – Hassaan

+0

@ GuanapadoPado、私の答えを更新しました。 – Bhaskar

+0

私はANDで検索しているときに0の結果を出しています。 – Hassaan

関連する問題