2017-02-07 10 views
0

Python(pymysql)でMySQLデータベース(fintech_16)をクエリして、カラムの一意の値(Trend)を取得します。私は次のクエリ実行するとき:今MySQLのカラム値をカンマで区切って

((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',)) 

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

を私は次の結果を得ました。 IDの中には複数の傾向があるものもあるため、DBは別の傾向としてカウントしています。

(投資、拡張、新製品、コラボレーション、規制)の5つの傾向だけを取得するためにクエリを調整するにはどうすればよいですか?

これらはわずか5ですが、手動でカウントを取得するにはLIKE %Investments%を使用できますが、コード/クエリでそれを実行します。

TIA

+0

あなたの予想出力はどのようなものです:

次に、あなたはあなたが必要とする値をカウントするFIND_IN_SET機能を使用することができます。上記の質問に編集して追加してください。 –

+0

GIGO。正規化を参照してください。 – Strawberry

答えて

-1

最初のアプローチは、正確な値を定義するためにSETデータ型を使用することで、あなたは5を持っている - [ '新製品'、 '投資'、 '拡張' ...]。

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

...何が間違っていますか? – Devart

関連する問題