用于检查字段是否存在的Sqlite查询失败

时间:2014-04-09 08:44:03

标签: c++ sqlite

我正在使用以下查询来检查是否存在特定的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)有任何建议吗?

1 个答案:

答案 0 :(得分:2)

SELECT EXIST将始终返回某些内容,它将是" true"或" false"。

更好的解决方案(在我看来)可能是使用例如。

SELECT COUNT(*) FROM main.mytable WHERE `urn` = 'dssdsdds'

然后获取单行并检查其单列值。如果它为零,那么" urn"不存在。


关于数据库查询的一般提示:连接到数据库并执行查询。这样你就会看到查询实际返回的内容。