2011-12-06 5 views
0

私のデータベースの2つのフィールドを簡単に検索する方法が必要です。 ここにシナリオがあります。フォームには、検索スクリプトに値を送信できるnameというテキストボックスがあります。MySQLで簡単検索スクリプトを作成する

検索スクリプトは、nameをデータベースの姓名フィールドに対してチェックします。

問題名前または姓のフィールドの下にデータベースにミドルネームを入力したことがあります。私は

fname  lname 
-------------------- 
stephen  jones 
john james doe 
john   james doe 

を検索したいデータの

例は、私はこのような検索を行うことができると思った:

SELECT 
_leads.Firstname, 
_leads.Lastname 
FROM 
_leads 
WHERE 
_leads.Firstname LIKE '%stephen jones%' OR 
_leads.Lastname LIKE '%stephen jones%' 

まあ、私はそれが働くだろう期待していました。

私のもう一つの試みは、文字列を爆発させ、それをデータベースと比較することでした。

私はこれをあまりにも多く見ていますか?私を助ける簡単な短いコードがありますか?

+0

を、私はあなたが入力中の単語の数をカウントすべきだと思うし、単語の数に基づいて(2または3)あなたが適切なクエリを書くことができます(ミドルネームを含めるかどうか) – hungneox

+0

select * fromテーブルwhere firstname LIKE "John%" AND lastname LIKE "%doe" –

答えて

1

あなたはこのように検索することができます:ミドルネーム:)

+0

明らかに、最初の名前と最後の名前をクエリから分離して、データベースの名字を調べるほうがいいです:) –

0
SELECT fields FROM table WHERE CONCAT(field1, ' ', field2) LIKE '%string%' 
1

あなたはおそらく、これらの二つの列にFULLTEXTインデックスを設定し、それを使用する必要がありますがある場合でも、それを見つけるだろう

WHERE CONCAT(first, ' ', last) LIKE '%John%Doe%' 

行を取得します。 MySQLではあなたが書くでしょう:

SELECT * FROM _leads WHERE MATCH(Firstname, Lastname) AGAINST ('stephen jones') 
関連する問題