2017-02-19 4 views
0

Я вытаскиваю данные из API Twitter в свою БД. Существует столбец «хэштеги», в котором хранится список хэштегов, используемых в твите.подсчет нескольких подстрок в MySql

Table name: brexittweets 
Column: hashtags varchar(500) 

Я хочу рассчитать количество хэштегов. Например

    Hashtags 
Tweet1: ['EUref', 'Brexit', 'poll'] 

Tweet2: ['Brexit', 'Blair'] 

Tweet3: ['Brexit', 'Blair', 'EUref'] 

Результат должен быть:

hashtag  count(hashtag) 
Brexit  3 
EUref  2 
Blair  2 
poll  1 

То, что я думал делать: Пытались взять подстроку в кавычки «», но это происходит несколько раз в той же строке.

Пробовал использовать strpos для поиска экземпляров '', но возвращает только первый экземпляр.

Есть ли способ сделать это с помощью запросов? Я думал о том, чтобы попробовать процедуру, но это осложняется, потому что мне нужно распечатать эти результаты на веб-странице с помощью PHP.

+0

'[]' включены в строку? – McNets

+0

Да. Так пишут с Python, но я могу избавиться от них, если они слишком проблематичны. –

+1

Посмотрите: http://stackoverflow.com/a/2696901/3270427 – McNets

ответ

0

Предполагая, что все теги разделены ', ', вы можете сделать следующее:

SELECT 
    hashtags, 
    ROUND ( 
     (
      LENGTH(hashtags) 
      - LENGTH(REPLACE (hashtags , "', '", "")) 
     )/4) + 1 
    AS count 
    from brexittweets 

Вот SQL Fiddle.

+0

Спасибо. Но не работает, потому что это просто возвращает количество хэштегов в каждой записи. Мне нужно подсчитать каждый хэштег в базе данных. Так, например, «poll» должен возвращать счет 1, чего нет в этом запросе. –

1

Если только вы нормализовали свой стол, чтобы каждый тэг в твите хранился в отдельной строке, ваша проблема была бы легко решена с помощью COUNT с GROUP BY.

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

  • Нет связанных вопросов^_^