2011-07-30 6 views
2

クエリが高速であるかどうかこれらのクエリを書き換えたり、それらを組み合わせたりする方法はありますか?たぶんこれらの3つの同じクエリをより速く書く方法はありますか?

update products 
set shop = '1' 
where shop LIKE '%demo%' 

update products 
set shop = '2' 
where shop LIKE '%car%' 

update products 
set shop = '3' 
where shop LIKE '%art%' 
+1

あなたは "より速く" により、正確に何を意味するのですか?少ないコード?より迅速なクエリ?これはアプリケーションにとってなぜ重要なのですか? – KingCrunch

+1

私はより高速なクエリを意味します。 – EnexoOnoma

+0

コメントにはもう少し質問があります。何でこれが大切ですか?それはあなたのDBスキーマをリファクタリングしたいだけで、どんなスピードがそれほど重要でないかのようです。 – KingCrunch

答えて

4
update products 
set shop = 
case 
when shop like '%demo%' then 1 
when shop like '%car%' then 2 
when shop like '%art%' then 3 
else shop 
end 
+0

何もできません、ありがとう! – EnexoOnoma

+0

ようこそ。 ;) –

+1

これは必ずしも別々のクエリよりもクエリを高速にするわけではありませんが、とにかく耐え難いほど遅くなるとは確信していません。 – JJJ