MySQL Query For Browser Version - PullRequest
       1

MySQL Query For Browser Version

0 голосов
/ 08 ноября 2018

В моей базе данных MySQL есть таблица, в которой хранятся данные для входа, и я храню информацию заголовка useragent, например:

{"userAgent":"Mozilla\/5.0 (Windows NT 6.3; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/54.0.2840.71 Safari\/537.36"}

Я пытаюсь узнать, какой браузер и версию используют люди для доступа к сайту. Это запрос, который у меня до сих пор:

SELECT
Browser,
COUNT(Browser) AS Count
FROM
(
    SELECT
    CASE
        WHEN userAgent LIKE '%Firefox%' THEN 'Firefox'
        WHEN userAgent LIKE '%Chrome%' THEN 'Chrome'
        WHEN userAgent LIKE '%MSIE %' THEN 'IE'
        WHEN userAgent LIKE '%MSIE+%' THEN 'IE'
        ELSE 'Unknown'
    END AS Browser
    FROM user_log
)
AS Browsers
GROUP BY Browser

Мой вопрос: как я могу добавить версию браузера к этому запросу?

1 Ответ

0 голосов
/ 08 ноября 2018

Мне удалось выяснить это, я надеюсь, что это пригодится кому-то в будущем:

SELECT
Browser,
Version,
COUNT(Browser) AS Count
FROM
(
    SELECT
    CASE
        WHEN userAgent LIKE '%Firefox%' THEN 'Firefox'
        WHEN userAgent LIKE '%Chrome%' THEN 'Chrome'
        WHEN userAgent LIKE '%MSIE %' THEN 'IE'
        ELSE 'Unknown'
    END AS Browser,
    CASE
        WHEN userAgent LIKE '%Firefox%' THEN SUBSTRING(userAgent, LOCATE('Firefox', userAgent) + 9, POSITION('.' IN SUBSTRING(userAgent, LOCATE('Firefox', userAgent) + 9)) + 1)
        WHEN userAgent LIKE '%Chrome%' THEN SUBSTRING(userAgent, LOCATE('Chrome', userAgent) + 8, POSITION('.' IN SUBSTRING(userAgent, LOCATE('Chrome', userAgent) + 8)) + 1)
        WHEN userAgent LIKE '%MSIE %' THEN SUBSTRING(userAgent, LOCATE('MSIE ', userAgent) + 5, POSITION('.' IN SUBSTRING(userAgent, LOCATE('MSIE ', userAgent) + 5)) + 1)
    ELSE 'Unknown'
    END AS Version
    FROM user_log
)
AS Browsers
GROUP BY Browser, Version
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...