我通过Python(pymysql)查询MySQL数据库(fintech_16
)以获取列(Trend
)的UNIQUE值。当我运行以下查询时:
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有多个趋势,因此DB将它们视为一个单独的趋势。
我应该如何调整我的查询以仅获得5个趋势(投资,扩展,新产品,协作,法规)及其计数?
虽然这些只有5,但我可以使用LIKE %Investments%
手动获取计数,但我希望代码/查询能够完成。
TIA
答案 0 :(得分:-1)
第一种方法是使用SET数据类型来定义确切的值,您有5 - ['新产品','投资','扩展'...]。
然后你可以使用FIND_IN_SET函数来计算你需要的值:
SELECT COUNT(*) FROM `fintech_16` WHERE FIND_IN_SET('New Products', `Trend`) > 0;