所以,这是情况:我有一个看起来像这样的CSV文件:
show_id title cast 1 Batman Robert Pattinson, Collin Farrel, Zoë Kravitz 2 Twilight Robert Pattinson, Kristen Stewart 3 Ava Jessica Chastain, Collin Farrel
我需要做的是在Python函数中打开这个CSV文件,对空格等进行一些处理。
然后我需要将其上传到SQL数据库中(任何我想要的,但我选择了MySQL),这没有问题。
问题
我的主要问题是,然后我需要(因为我的挑战要求如此)创建一个查询来计算演员在列表中的所有电影中出现的次数。所以,在这种情况下,查询应该显示如下:
演员 电影数量 Robert Pattinson 2 Collin Farrel 2 Zoë Kravitz 1 Kristen Stewart 1 Jessica Chastain 1
如您所见,我没有一个可以用LIKE或CONTAINS进行搜索的名称。那么,我该怎么办呢?因为在CSV中,每部电影的演员列表有超过一个演员,并且我将它们保存在数据库中的varchar或text类型中,所以每行都有多个演员。
或者我应该创建另一个表格,用演员和电影的外键来关联吗?或者在MySQL中无法做到这一点,但在其他SQL中可能可以做到吗?
如果您正在寻找性能高效的东西,您应该将数据分割(总共创建3个表 - 电影,演员,演职员),并使用演职员将演员与电影连接起来,然后编写一些带有连接的简单SQL,如下所示:
您还可以使用https://sebhastian.com/mysql-split-string/或使用psql / plsql和存储过程来完成另一种方式。如果可能的话,我会只是将数据分割。
干杯。