2015-03-08 109 views
0

如何检查SQLite表中是否存在具有特定值的行?检查SQLite表中是否已经存在具有值的行

我的表有一个字符串“名称”列。我想查看一个特定的名称是否已经存在于另一个表格行中。我仍然在学习SQLite,但我认为可以使用游标来做到这一点。

+1

我editted主要是语法,使之更清楚什么被问。我还删除了'Java','Android','row'和'exists'标签 - 前两个是因为这是关于SQLite而不是Java/Android实现;后两个是因为他们是无稽之谈。如果这个问题真的是关于Java或Android特定的东西,请更新您的问题,特别是针对这种实现的Java/Android代码,而不仅仅是SQLite – 2015-03-08 22:59:34

回答

2

如果您对name列有UNIQUE约束,则可以使用INSERT OR IGNORE(或Android中的insertWithOnConflict())插入仅当行尚不存在的行。

在一般情况下,要检查行是否存在,您必须运行SELECT查询。 但是,计数行的helper function

boolean nameExists(String name) { 
    SQLiteDatabase db = ...; 
    long count = DatabaseUtils.queryNumEntries(db, 
        "MyTable", "name = ?", new String[] { name }); 
    return count > 0; 
} 
相关问题