1

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

可以说我有以下结构

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

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

谢谢和问候,迈克。

4

1 回答 1

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

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

于 2013-04-02T05:21:12.730 回答