2017-02-07 1 views
0

Я запрашиваю базу данных MySQL (fintech_16) через Python (pymysql), чтобы получить УНИКАЛЬНЫЕ значения столбца (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',)) 

Сейчас. поскольку некоторые из идентификаторов имели более одного тренда, БД считает их отдельной тенденцией.

Как мне настроить свой запрос, чтобы получить только 5 трендов (Инвестиции, расширение, новые продукты, сотрудничество, правила) вместе с их счетами?

Хотя это всего лишь 5, я могу использовать LIKE %Investments%, чтобы получить счет вручную, но я хочу, чтобы код/​​запрос выполнял его.

ТИА

+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

Смежные вопросы