So, hier ist die Situation: Ich habe eine CSV-Datei, die so aussieht:
show_id title cast 1 Batman Robert Pattinson, Collin Farrel, Zoë Kravitz 2 Twilight Robert Pattinson, Kristen Stewart 3 Ava Jessica Chastain, Collin Farrel
Was ich tun muss, ist, diese CSV-Datei in einer Python-Funktion zu öffnen und Leerzeichen usw. zu verarbeiten.
Ich muss es dann in eine SQL-Datenbank hochladen (was ich will, aber ich habe mich für MySQL entschieden), was kein Problem ist.
Frage
Mein Hauptproblem besteht darin, dass ich dann (wie es meine Herausforderung erfordert) eine Abfrage erstellen muss, die zählt, wie oft ein Schauspieler in allen Filmen einer Liste vorkommt. In diesem Fall sollte die Abfrage also so aussehen:
演员 电影数量 Robert Pattinson 2 Collin Farrel 2 Zoë Kravitz 1 Kristen Stewart 1 Jessica Chastain 1
Wie Sie sehen, habe ich keinen Namen, den ich mit LIKE oder CONTAINS suchen kann. Also was soll ich tun? Da in der CSV-Datei die Besetzungsliste für jeden Film mehr als einen Schauspieler enthält und ich sie in einem Varchar- oder Texttyp in der Datenbank speichere, habe ich mehrere Schauspieler pro Zeile.
Oder sollte ich eine weitere Tabelle mit Fremdschlüsseln erstellen, um Schauspieler und Filme in Beziehung zu setzen? Oder ist dies in MySQL nicht möglich, aber vielleicht in anderen SQLs?
如果您正在寻找性能高效的东西,您应该将数据分割(总共创建3个表 - 电影,演员,演职员),并使用演职员将演员与电影连接起来,然后编写一些带有连接的简单SQL,如下所示:
您还可以使用https://sebhastian.com/mysql-split-string/或使用psql / plsql和存储过程来完成另一种方式。如果可能的话,我会只是将数据分割。
干杯。