SQL: 如何分隔以逗号分隔的字符串值?
SQL: How to separate string values separated by commas?
我正在尝试为我看过的所有电影创建一个关系数据库。
我使用 IMDb 对我看过的电影进行评分,并使用网站的导出功能将数据保存在我上传到 Microsoft Access 的 .csv 文件中。但是,"Genre" 列是多对多关系,我希望将其转换为一对多关系。
我想要一个名为 GENRE_ID
的 table 为每个流派分配一个数字 ID。然后我会有另一个 table,其中每个实例都有 movie ID
("const")、line item number
和 GENRE_ID
.
所以它可能看起来像:
const line_item MOVIE_ID
tt0068646 1 1 (if MOVIE_ID: 1 = "crime")
tt0068646 2 2 (if MOVIE_ID: 2 = "drama")
这是我的数据库当前状态的图像 link。非常感谢你的帮助。这是我正在做的一个项目,目的是利用自己的时间了解更多信息。
关于解决方法的一些说明。
table 种类型
ID Genre
1 Action
2 Adventure
3 Thriller
4 War
进口table
Const GenreList
tt00 Action, Adventure, Thriller, War
一个查询
SELECT ti.Const, ti.GenreList, tg.Genre
FROM Imports as ti, Genres as tg
WHERE ti.GenreList Like "*" & tg.Genre & "*"
基本上,当您拥有一对多关系时,您应该为该关系使用 table
在你的情况下,我建议有 3 table:
- 电影 table : 包含类似于您目前的 table 的信息,流派除外
- 流派table:包含(至少)ID 和名称
- Film_Genre table : 包含 Film_Id, GenreId.
例如
在您的类型 table 中,您的数据将是
row 1: Id =1 , Name = "Crime"
row 2: Id = 2, Name = drama,
等等
你的 Film_Genre table 会是这样的:
row1: Film_Id = tt0068646, GenreId = 1,
row2: Film_Id = tt0068646, GenreId = 2
row3: Film_Id = tt0082971, GenreId = 2
等等
(我假设你使用 "const" 列作为 Film table 的 Id,如果没有,你应该有自己的 Id)
当然,将您当前的数据库转换为此数据库需要您付出一点努力。
我正在尝试为我看过的所有电影创建一个关系数据库。
我使用 IMDb 对我看过的电影进行评分,并使用网站的导出功能将数据保存在我上传到 Microsoft Access 的 .csv 文件中。但是,"Genre" 列是多对多关系,我希望将其转换为一对多关系。
我想要一个名为 GENRE_ID
的 table 为每个流派分配一个数字 ID。然后我会有另一个 table,其中每个实例都有 movie ID
("const")、line item number
和 GENRE_ID
.
所以它可能看起来像:
const line_item MOVIE_ID
tt0068646 1 1 (if MOVIE_ID: 1 = "crime")
tt0068646 2 2 (if MOVIE_ID: 2 = "drama")
这是我的数据库当前状态的图像 link。非常感谢你的帮助。这是我正在做的一个项目,目的是利用自己的时间了解更多信息。
关于解决方法的一些说明。
table 种类型
ID Genre
1 Action
2 Adventure
3 Thriller
4 War
进口table
Const GenreList
tt00 Action, Adventure, Thriller, War
一个查询
SELECT ti.Const, ti.GenreList, tg.Genre
FROM Imports as ti, Genres as tg
WHERE ti.GenreList Like "*" & tg.Genre & "*"
基本上,当您拥有一对多关系时,您应该为该关系使用 table 在你的情况下,我建议有 3 table:
- 电影 table : 包含类似于您目前的 table 的信息,流派除外
- 流派table:包含(至少)ID 和名称
- Film_Genre table : 包含 Film_Id, GenreId.
例如
在您的类型 table 中,您的数据将是
row 1: Id =1 , Name = "Crime"
row 2: Id = 2, Name = drama,
等等
你的 Film_Genre table 会是这样的:
row1: Film_Id = tt0068646, GenreId = 1,
row2: Film_Id = tt0068646, GenreId = 2
row3: Film_Id = tt0082971, GenreId = 2
等等 (我假设你使用 "const" 列作为 Film table 的 Id,如果没有,你应该有自己的 Id)
当然,将您当前的数据库转换为此数据库需要您付出一点努力。