2017-02-07 197 views
0

我通過Python(pymysql)查詢MySQL數據庫(fintech_16)以獲得列的唯一值(Trend)。當我跑到下面的查詢:MySQL通過逗號分隔列值

cursor.execute ("SELECT DISTINCT `Trend` FROM `fintech_16` ") 
cursor.fetchall() 

我得到了以下結果:

((u'Investments',), 
(u'Expansion',), 
(u'New Products',), 
(u'Collaboration',), 
(u'New Products,Investments',), 
(u'New Products,Expansion',), 
(u'Expansion,Investments',), 
(u'New Products,Collaboration',), 
(u'Regulations',), 
(u'Investments,New Products',), 
(u'Investments,Expansion',), 
(u'Collaboration,Investments',), 
(u'Expansion,New Products',), 
(u'Collaboration,New Products',)) 

現在。由於一些ID有不止一種趨勢,因此數據庫將它們視爲單獨的趨勢。

我應該如何調整我的查詢以獲得僅有的趨勢(投資,擴張,新產品,合作,規章)以及他們的數量?

雖然這些只有5個,但我可以使用LIKE %Investments%來手動獲取計數,但我希望代碼/查詢能夠執行此操作。

TIA

+0

什麼是您預期的輸出。編輯並將其添加到上面的問題。 –

+0

GIGO。見正常化。 – Strawberry

回答

-1

第一種方法是使用SET數據類型來定義的精確值,你有5 - [ '新產品', '投資', '擴展' ...]。

那麼你可以使用FIND_IN_SET函數來計算你需要的值:

SELECT COUNT(*) FROM `fintech_16` WHERE FIND_IN_SET('New Products', `Trend`) > 0; 
+0

......出了什麼問題? – Devart