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 回答