2012-01-08 6 views
0

住所録用のユーザー入力用のテキストボックスが1つあります。つまり、ブロック番号、住所、市区町村、州および郵便番号には分割されません。しかし、私のMySqlテーブルには、それぞれのアドレスコンポーネントの列があります。私の仕事は、ユーザーからのアドレス文字列を取得し、それをアドレステーブルと照合して、一致する行のIDを返すことです。MySQLのテーブルの複数の列に連結された文字列を検索します

アドレステーブルの個々の列に対して、文字列全体の逆引きを行うにはどうすればよいですか?また、ユーザーが複数のスペースを入力できるので、文字列を解析することは容易ではありません&ストリート名は扱いにくく、複数の単語を含むことができます。

したがって、ユーザーが123 South Main St Los Angeles CA 92032を入力した場合は、列(住所ID、ブロック番号、市区町村、市区町村、郵便番号)で住所表を検索し、住所ID 。

おかげで、 シャキーラ

答えて

1
select * 
from Address 
where concat(street, city) like '%input%'; 

あなたは、フルテキスト検索のセットアップが必要に見ることが http://devzone.zend.com/26/using-mysql-full-text-searching/http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

私は、連結のための空きスペースを追加する場合、多くのことができます
+0

おかげサチンは、しかし、それは良い作品例えばどこconcat(blockno、 ''、streetname、 '')。しかし、私が探しているのは、より完全なテキスト検索機能です。ユーザーが都市や州に入るのを忘れた場合でも、それはうまくいくはずです。推奨するクエリでは、ユーザーは正しい順序でアドレスを入力する必要があります。 –

+1

右側の全文検索に関する多くの質問がありますが、確認しましたか? も参照してくださいhttp://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html参照してください。 –

関連する問題