[前][次][番号順一覧][スレッド一覧]

mysql:12663

From: Hisamitsu Issei <Hisamitsu Issei <ds1i-hsmt@xxxxxxxxxx>>
Date: Tue, 24 Jan 2006 02:06:29 +0900
Subject: [mysql 12663] Re: 複数の検索結果をつなぎあわせて取得したい

久光です



> テーブルスキャンを条件の数だけ繰り返すのが嫌ということなら、
> SELECT id,
>    IF(`list` like '%|リンゴ|%', num, 0)
>   +IF(`list` like '%|イチゴ|%', num, 0)
>   +IF(`list` like '%|みかん|%', num, 0)
>         :
>         :
>   AS `SUM`
> FROM `prod`
> という感じにして、この結果から`SUM`カラムが0でない 
> 行を抽出するとか。

 ありがとうございます。条件と加算をif文でこんな風に使うな 
んて
目からウロコです。勉強になります。


> ところで私の勘違いかもしれませんが、ぱっと見た感じ、欲しいデー 
> タがなぜ
> 「ヒット回数の合計×num値」なのか疑問です。numはそ 
> のローのlistの要素数を
> 指しているようなので、欲しいのは「ヒット回数」ではないのかと思 
> いました。
> (上記のSQLで、IF関数の第2パラメータに指定し 
> ている「num」を「1」に変えれば
> そういう答えになります)
 まさに、ご指摘の通り。numは1で目的を達成できました。
難しく考えすぎて深みにはまってました。


 教えていただいた方法を参考にPHPを修正して何度か動かして 
みました。
体感できるほど応答速度が改善しました。
(たまたまレンタルサーバーが混雑していなかっただけなのかもしれま 
せんが)

すごいです。ありがとうございました。


=================================
==       HISAMITSU ISSEI       ==
==  DS1I-HSMT@xxxxxxxxxx  ==
http://www.ne.jp/asahi/pro/his/
=================================



[前][次][番号順一覧][スレッド一覧]

     12661 2006-01-23 19:30 [Hisamitsu Issei <ds1] 複数の検索結果をつなぎあわせて取得したい
     12662 2006-01-23 20:32 ┗[UNO Shintaro <uno@xx]                                       
->   12663 2006-01-24 02:06  ┗[Hisamitsu Issei <ds1]                                     
     12664 2006-01-24 07:57   ┗[UNO Shintaro <uno@xx]