[PHP-users 22218]MySQLのSET型のデータを検索条件として使うには

三ツ木 貴代志 kiyoshi @ mitsugi.jp
2004年 6月 14日 (月) 19:06:15 JST


広島の三ツ木と申します。

MySQL 4.0.18
PHP 4.2.2
APACHE 2.0.49

でテスト環境を構築しています。だいたい下記のような構造のテーブル
を作成しました。

・県マスタ(県コード、県名)
KEN(KEN_CD char(2),KEN_NAME varchar(5))
+---------+------------+
| KEN_CD  | KEN_NAME   |
+---------+------------+
|   01    |   埼玉県   |
|   02    |   広島県   |
|   03    |   沖縄県   |
+---------+------------+

・顧客データ(県コード、顧客名)
CLIENT(CLIENT_KEN_CD set ('01','02','03)), CLIENT_NAME varchar(20))
+---------------+----------------+
| CLIENT_KEN_CD | CLIENT_NAME    |
+---------------+----------------+
|     01,03     |   三ツ木企画   |
+---------------+----------------+

で、この際にPHPでSQLを発行して、HTMLのテーブルで

+-----------------+----------------+
|        県名     | クライアント名 |
+---------------+------------------+
|  埼玉県、沖縄県 |    三ツ木企画  |
+-----------------+----------------+

のように表示させたいと思ったのですが、どのようにSQL文を発行すればよい
のかわかりません。

SELECT KEN.KEN_NAME, CLIENT_NAME FROM KEN, CLIENT WHERE
KEN.KEN_CD LIKE concat('%', CLIENT.CLEINT_KEN_CD, '%');

で試すと、行が分割されて出力されてしまいます。なんとか1行で出力させた
いのですが、無理なのでしょうか。苦肉の策として、県マスタから県名を配列
として取得し、クライアント県コードとすり替えようかとも考えたのですが、
postgresのようにpg_fetch_allのようなものがないため、こちらも難航してい
ます。何か手段がありますでしょうか。

よろしくお願いします。

--------------------------------
MITSUGI, kiyoshi
kiyoshi @ mitsugi.jp
http://www.mitsugi.jp/
---------------------------------



PHP-users メーリングリストの案内