CSV字段sqlite的搜索操作

时间:2015-04-16 07:55:55

标签: sqlite csv

我有一个名为 用户 的SQLite表。每个 用户 都有一个主 UserID 和多个 SecID (所有整数)。 SecIDs 以CSV格式存储为单个字段(类型为String)。例如,假设 User1 SecIDs 为4,5,6,7,而 User2 SecIDs 为8, 9,55,66。

因此对于 User1 : -
UserID = 1
SecIDs =" 4,5,6,7"
对于 User2 : -
UserID = 2
SecIDs =" 8,9,55,66" (依此类推)

现在我的问题是 - 我有一个特定的SecID说5.我必须提取对应的UserID(即1)。那么这个操作的查询是什么?

P.S-我的SQLite表中可能有数十万条用户记录。因此,搜索查询应该针对最短时间消耗进行优化。

1 个答案:

答案 0 :(得分:1)

这根本不是您执行SQL或关系数据库的方式,因此SQLite没有特定的SELECT语法。当然,您可以通过字符串模式~"12"搜索所有字段,但这是一个可怕的想法,因为它匹配12和128一样多达112.

您应该做的是重新构建数据库。获取1对n映射表以将SecID映射到用户;它并不难,速度快得多,而且是一个两列表:

+-----+----+
|SecID|User|
+-----+----+
|    4|   1|
|    5|   1|
|    6|   1|
|    7|   1|
|    8|   2|
|    9|   2|
|   55|   2|
|   66|   2|
+-----+----+

它将更快,更不容易出错,并且在RAM和永久存储中都更加紧凑。