• 締切済み

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; が一番高速な方法ですか?

みんなの回答

回答No.2

>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)
回答No.1

select flgbit from shain where flgbit=1 limit 1 もしくは select count(*) from shain where flgbit=1 GROUP BY id とすればよいでしょう。 flgbitにインデックスをつけていれば高速に処理できます

cpwiec
質問者

お礼

ありがとうございます。 select NULL みたいにはできないんですね。 flgbitやcount(*)を得るのは仕方がないんですね。

関連するQ&A