アプリ版:「スタンプのみでお礼する」機能のリリースについて

flgbitが1であるレコードが存在するかを調べるために
select flgbit from shain where flgbit = 1;
としていました。
しかし、この戻り値でflgbit=1が得られますがそれは使いません。
このような場合、selectでなくfindのようなものはありませんか?
select flgbit from shain where flgbit = 1;
が一番高速な方法ですか?

A 回答 (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;

とすることも可能ですが、性能的には差は出ませんよ?
    • good
    • 0

select flgbit from shain where flgbit=1 limit 1


もしくは
select count(*) from shain where flgbit=1 GROUP BY id

とすればよいでしょう。
flgbitにインデックスをつけていれば高速に処理できます
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/27 14:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!