所以,情況就是這樣:我有一個如下所示的 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),沒問題。
問題
我的主要問題是,然后我需要(因為 mi challenge 說過)創建一個查詢來計算一個演員在串列中的所有電影中出現的次數。因此,在這種情況下,查詢應顯示如下內容:
Actor Ammount_of_movies
Robert Pattinson 2
Collin Farrel 2
Zo? Kravitz 1
Kristen Stewart 1
Jessica Chastain 1
如您所見,我沒有可以使用 LIKE 或 CONTAINS 搜索的名稱。那么,我該怎么做呢?因為,在 CSV 中,每部電影的演員串列有不止一個演員,我將它們保存在資料庫中的 varchar 或文本型別中,所以每一行都有不止一個演員。
或者我應該用演員和電影的前鍵創建另一個表?或者是不是我在 MySQL 中做不到但在其他 SQL 中可能做的事情?
uj5u.com熱心網友回復:
如果您尋找性能高效的東西,您應該拆分資料(總共創建 3 個表 - 電影、演員、演員表)并使用演員表將演員與電影連接起來,然后撰寫帶有一些連接的簡單 sql,例如:
Select actors.name as Actor, count(movies.title) as Amount_of_movies from actors,
inner join cast on cast.actor_id = actors.actor_id
inner join movies on movies.movie_id = cast.movie_id;
您可以使用https://sebhastian.com/mysql-split-string/或使用 psql / plsql 和存盤程序以另一種方式做到這一點。如果可能的話,我只會拆分資料。
干杯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433954.html
上一篇:迭代時如何跳過空值?
