在sqlite3数据库中搜索某些项目的查询

时间:2013-04-02 04:56:43

标签: c++ sqlite

我在C ++中有一个项目列表作为字符串数组。我还有一个sqlite3数据库,其中包含列入黑名单的字符串。现在我必须使用我必须用0或1标记它们的项目列表,告诉我它们是否被列入黑名单。我可以通过使用“Select * from ITEMS_TABLE WHERE item = string [i]”逐个搜索它们,但这需要时间。我也可以从数据库中提取黑名单,然后在我的列表中查找它们。但有没有一种有效的方法可以找出我列表中的哪些项目被列入黑名单。

假设我有以下结构

struct item 
{ 
    char name[MAX_NAME_LEN]; 
    bool isBlacklisted; 
};

然后我使用这些结构的数组来知道它们中的任何一个是否被列入黑名单。所以我必须将isBlacklisted标志设置为true,如果在数据库中找到该条目。如果我使用Select方法,它会返回列入黑名单的项目列表。但我仍然需要使用字符串比较在我的数组中找到它们。有一些有效的方法是做。数据库是否提供任何此类功能。

谢谢和问候, 麦克

1 个答案:

答案 0 :(得分:0)

根据您的要求设计数据库结构。你想知道黑名单项只是使用一个包含0或1的黑名单列,或者不是你的表ITEMS_TABLE有这些列

itemcode itemname isblacklist
1        item1    0
2        item2    0
3        item3    1

现在

Select * from ITEMS_TABLE WHERE isblacklist=0

这将返回非黑名单项目和

Select * from ITEMS_TABLE WHERE isblacklist=1

将返回黑名单项目,希望这会对您有所帮助