我正在通过Python (pymysql)查询MySQL数据库(fintech_16),以获得列(Trend)的唯一值。当我运行以下查询时:
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',))现在。因为有些is有多个趋势,所以DB将它们计算为一个单独的趋势。
我应该如何调整我的查询,以只得到5个趋势(投资,扩张,新产品,合作,法规)和他们的计数?
虽然这些只有5,但我可以使用LIKE %Investments%手动获取计数,但我希望代码/查询能够做到这一点。
提亚
发布于 2017-02-07 07:34:40
第一种方法是使用设置数据类型来定义确切的值,有5种--“新产品”、“投资”、“扩展”.
然后可以使用FIND_IN_SET函数来计算所需的值:
SELECT COUNT(*) FROM `fintech_16` WHERE FIND_IN_SET('New Products', `Trend`) > 0;https://stackoverflow.com/questions/42084009
复制相似问题