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]