通过XCode中的sqlite3检查存在性

问题描述

我正在通过应用程序xcode在swift文件中使用sqlite3。我目前正在从事一个日记项目,您每天要记录一个日记条目,并且我将内容,记录的日期等存储在数据库中。现在,我正在尝试实现一种检查给定日期是否已经存在日志的方法。我在sqlite3_prepare_v2中使用以下查询

IF EXISTS
        (
            SELECT *
            FROM journal
            WHERE date = ?)
        )

(我正在使用?稍后绑定给定日期btw)如何检查此查询的评估是对还是错,并将该值设置为变量? sqlite3_step()是否会返回此查询的返回值?谢谢!

解决方法

您可以这样做:

select exists (select 1 from journal where date = ?) as flag

这始终为您提供标量结果(一行和一列,称为flag),其值为0 / 1,该值指示至少一条记录是否满足条件。

另一个选择是:

select count(*) > 0 as res
from journal
where date = 1