[PHP-users 10020] Re: 複数選択項目の効率の良い管理方法に

Osamu Shigematsu php-users@php.gr.jp
Thu, 12 Sep 2002 04:16:05 +0900


重松です。こんにちは。
Seto さん、コメントありがとうございます。

# 質問のメールでは、アンケートの例がよろしくないと思って、
# 後で書き換えたのですが、全部、書き換えられてなったようで、
# 一部意味不明でした。

On Thursday, September 12, 2002, at 03:51  AM, Seto wrote:

>  Setoです。
> PostgreSQl以外はよく知らないのですが
> とりあえずPostgreSQLならば
> CなどでXOR等利用した自作オペレータを定義すれば
> OR検索とかもすっきるするのでは無いでしょうか。

OR の件ですが、よく考えれば (というか、よく考えなくても)、
各項目が、LSB から順に該当するとすると、

$mask = "0000"; // 4 項目の場合
foreach($items as $item)
	$mask[--$item] = "1"; // 項目の番号は 1 ベースとする
$SQL = "SELECT * FROM 周辺機器アンケート表 WHERE 所有機器 & b'$mask'";

とすればいいだけのことかもしれません。。。

AND の場合は、単純に、

$SQL = "SELECT * FROM 周辺機器アンケート表 WHERE (所有機器 & b'$mask') = b'$mask'";

でよいのかも。PostgreSQL だけならば。

# 試していません。

-- 
Osamu Shigematsu