2

sqliteデータベースの「Products」という名前のテーブルに特定のIDが存在するかどうかを確認しようとしています。

def existsCheck( db, id )
    temp = db.execute( "select exists(
        select 1
        from Products
        where promoID = ?
    ) ", [id] )
end

これは私の現在のコードですが、配列を返します。つまり、ブール値として使用する前に、変換を処理する必要があります。値1のintを返すように変更する方法はありますか?

4

2 に答える 2

2

サブクエリを使用する必要はありません。

def existsCheck( db, id )
    db.execute( "select 1
                 from Products
                 where promoID = ?",
                [id] ).length > 0
end

これはブール結果を返します。

于 2012-11-21T09:45:34.367 に答える
0

次のように変更します。

def existsCheck( db, id )
    temp = db.execute( "select 1 where exists(
        select 1
        from Products
        where promoID = ?
    ) ", [id] ).any?
end

SQLクエリは1、条件が満たされた場合に返され、満たされていない場合は結果セットが空になります。関数全体は、結果セットに応じてブール値を返します。

于 2012-11-21T07:53:04.567 に答える