如何使用sqlite将多个值插入单个列?

时间:2009-06-05 21:48:02

标签: sql database-design sqlite

我想在我的表中有一个列可以存储可变数量的int值。做这个的最好方式是什么?我希望能够根据这些整数进行选择,因此csv列表不起作用。

基本上我的表中有很多行可以属于多个不同的类别。我想在我的表中存储类别ID,并能够根据它们所属的类别选择行。我相信这被称为多对多的关系。我正在使用sqlite。

2 个答案:

答案 0 :(得分:6)

您需要一个中间表,其中每一行都是一个项目和一个类别。

ItemID          Category
111             1
111             2
222             1
222             2
222             3
333             3

要根据类别(例如类别2)选择所有项目,您可以执行以下查询

SELECT * FROM Items AS I INNER JOIN ItemsInCategories AS N ON N.ItemID = I.ItemID WHERE N.Category = 2

这将返回

ItemID
111
222

答案 1 :(得分:4)

应使用映射表完成多对多关系。不是通过黑客攻击多值列类型

例如此BlogPost< - >分类样本:

Blog
  Id
  Title
  Content

Category
  Id
  Title

Blog_Category
  BlogId
  CategoryId

这意味着当包含Id 12的BlogPost属于类别3,5和10时,Blog_Category包含以下行:

12, 3
12, 5
12, 10