[PHP-users 6730] Re: 英字を検索するさいのループ方法

Mashiki php-users@php.gr.jp
Sun, 07 Apr 2002 16:25:55 +0900


 Mashikiです。

>検索用のカラムの文字を小文字に統一させる事にします。
>それで問題は解決です。

元のデータ構造を変更しなくてもPostgreSQLなら以下の方法が使えます。

表xxxxから、key列が'ABC','ABc','AbC','Abc','aBC','aBc','abC','abc'
に相当するものを検索したいなら、

$sql= "
  select *
   from xxxx
  where lower(key) = 'abc'
";

この方法はほかのデータベースでも使用可能ですが、PostgreSQLならば
lower(key)に関数インデックスの適用がが可能なので、データが巨大に
なったときもパフォーマンスが落ちません。



>専門用語も調べないと分からないし、2進数の世界も分かりません(笑)

がんばってくださいね。ついでに

> //べき乗式
> $count = 1;
> for ($i = 0; $i < sizeof($search_1); $i++)  {
>   $count *= 2;//大文字小文字あわせて2通り
> }

この部分

$count= 1 << sizeof($search_1);

で記述できます。2進数って言うだけですが...