2016-05-17 6 views
0

私は患者情報が入ったテーブルを持っています。ユーザー入力に一致する複数の列の値を持つレコードを検索するにはどうすればよいですか?

First_Name Last_Name 
TEST   DO NOT USE 
LEES   ESTATE 
LEES   ROSA 

したがって、ユーザー入力に基づいて、First_NameまたはLast_Nameがユーザー入力と一致するかどうかを調べる必要があります。ユーザーが複数の単語を入力した場合は、単語を分割し、各単語をFirst_Name列とLast_Name列に対してチェックする必要があります。

たとえば、ユーザー入力が「D N U」の場合、最初の行を取得する必要があります。

ユーザー入力が「ES」の場合、3行すべてを取得する必要があります。同様に、ユーザー入力が「SA ES」の場合、3行目が必要です。

私はLIKE演算子を使用しようとしていますが、私が必要とするものを達成するためにさらに多くのロジックを適用する必要があると思います。

+0

これは小さなプログラムではありません。以前に試しましたか? –

+0

私は、ストアドプロシージャで行うのではなく、アプリケーションでこれを実行しようとしています。しかし、これがSQLで可能かどうかを知りたがっています。 – user2502961

+0

一言で言えば、はい、可能です。 –

答えて

0

私はこのような何かが働くだろうと思われる:

where concat(last_name, ' ', first_name) like concat('%', replace($user_input, ' ', '%'), '%') 

文字列の連結のための正確な方法は、データベースによって異なります。

+0

これは助けに感謝しました。 – user2502961

関連する問題