我正在使用以下查询来检查是否存在特定的urn(是或否)并且我得到了一个(由于urn不在表中而不正确)
sqlstr = "SELECT EXISTS (SELECT * FROM main.mytable WHERE `urn` = 'dssdsdds')";
char **results = NULL;
int rows, columns;
sqlite3_get_table(db, sqlstr, &results, &rows, &columns, &error);
if(rows >0 )
{
///Item is present
}
我知道骨灰盒不存在但是我仍然得到行> 0(行= 1)有任何建议吗?
答案 0 :(得分:2)
SELECT EXIST
将始终返回某些内容,它将是" true"或" false"。
更好的解决方案(在我看来)可能是使用例如。
SELECT COUNT(*) FROM main.mytable WHERE `urn` = 'dssdsdds'
然后获取单行并检查其单列值。如果它为零,那么" urn"不存在。
关于数据库查询的一般提示:连接到数据库并执行查询。这样你就会看到查询实际返回的内容。