3
string  test = "SELECT count(*) FROM table where email=@email AND active=@active";

こんにちは、C# を使用して、両方の条件が true であるか、または一方のみが true であるかを確認することは可能ですか?

int count = testCMD.ExecuteNonQuery();

上記のコードを使用してみましたが、それがどのように機能するのかよくわかりません..両方の条件が真の場合にのみカウントされますか?

4

3 に答える 3

2

Count は、両方の条件が真である結果の数を返します。どちらか一方をチェックする場合は、AND の代わりに OR を使用します。

カウント

于 2013-04-25T09:37:31.433 に答える
1

試す:

string test = "
    select COUNT(*) from(
        select case when (SELECT count(*) FROM table where email=@email AND active=@active)>0 then 1 else null end Num
        union all
        select case when (SELECT count(*) FROM table where email=@email OR active=@active)>0 then 1 else null end Num
    )x where Num is not null"

両方の条件が true の場合は 2、いずれかが true の場合は 1、両方が false の場合は 0 を返します。

ExecuteScalar() 代わりに使用ExecuteNonQuery()します(影響を受けた行数を返します)。

i.e. int count  = (Int32)testCMD.ExecuteScalar();
于 2013-04-25T09:39:48.407 に答える