- 締切済み
select '' from shain where flgbit = 1;
flgbitが1であるレコードが存在するかを調べるために select flgbit from shain where flgbit = 1; としていました。 しかし、この戻り値でflgbit=1が得られますがそれは使いません。 このような場合、selectでなくfindのようなものはありませんか? select flgbit from shain where flgbit = 1; が一番高速な方法ですか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
>select flgbit from shain where flgbit = 1; >が一番高速な方法ですか? select flgbit from shain where flgbit=1 limit 1; が一番、無駄がないと思います。 >select NULL みたいにはできないんですね。 >flgbitやcount(*)を得るのは仕方がないんですね。 select null from shain where flgbit=1 limit 1; や select 1 from shain where flgbit=1 limit 1; や select '真' from shain where flgbit=1 limit 1; あるいは select 1 from shain where flgbit in(1,3,5,7,9) limit 1; とすることも可能ですが、性能的には差は出ませんよ?
- yambejp
- ベストアンサー率51% (3827/7415)
select flgbit from shain where flgbit=1 limit 1 もしくは select count(*) from shain where flgbit=1 GROUP BY id とすればよいでしょう。 flgbitにインデックスをつけていれば高速に処理できます
お礼
ありがとうございます。 select NULL みたいにはできないんですね。 flgbitやcount(*)を得るのは仕方がないんですね。