我正在尝试检查我的sqlite数据库中名为“Products”的表中是否存在特定ID。
def existsCheck( db, id )
temp = db.execute( "select exists(
select 1
from Products
where promoID = ?
) ", [id] )
end
这是我当前的代码但返回一个数组,这意味着我必须先处理转换才能将其用作布尔值。任何想法如何我可以改变它,以便它返回一个值为1的int?
答案 0 :(得分:2)
无需使用子查询:
def existsCheck( db, id )
db.execute( "select 1
from Products
where promoID = ?",
[id] ).length > 0
end
返回布尔结果。
答案 1 :(得分:0)
将其更改为:
def existsCheck( db, id )
temp = db.execute( "select 1 where exists(
select 1
from Products
where promoID = ?
) ", [id] ).any?
end
SQL条件在满足条件时返回1
,如果不满足则返回空结果集。整个函数根据结果集返回布尔值。