人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MYSQL+PHPで困っています。

データにはIDと住所を3列に分けて、
idにid
aaaに県名
bbbに市区名
cccに町村名
を入れています。

仮に東京都渋谷区恵比寿がデータに入っています。

それで、

SELECT *
FROM addr
WHERE `aaa` LIKE ’%Z%’ || `bbb` LIKE ’%Z%’ || `ccc` LIKE ’%Z%’
ORDER BY id ASC

としてみたのですが、これだと「東京都」や「渋谷区」などではうまく動いているのですが、
「東京都渋谷区」で行うと、それぞれの列には「東京都渋谷区」では登録されてないので、駄目っぽいです。

どのような解決法がありますでしょうか?
グループ化かなと思いましたが、よく分かりませんでした。

素人なので、上記コードを変更してもらえればありがたいです。

●質問者: haring
●カテゴリ:ウェブ制作
✍キーワード:AAA ASC CCC MySQL PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● birdie-brain
●50ポイント

http://dev.mysql.com/doc/refman/4.1/ja/string-functions.html

MySQL 4.1 リファレンスマニュアル :: 6.3.2 文字列関数

各要素に分解する前の住所に対して検索したければ、住所を連結してしまえばよいのです。

具体的には、CONCAT()関数を使って、このように記述します。


SELECT *

FROM addr

WHERE CONCAT(`aaa`, `bbb`, `ccc`) LIKE ’%Z%’

ORDER BY id ASC

◎質問者からの返答

うおー

出来ました。助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ