4

次のように、データベースにいくつかのデータがあります(PHP経由で取得しています):

+----------------------+
| Browser              |
+----------------------+
| Chrome 23.0.1271.97  |
| Chrome 24.0.1312.52  |
| Chrome 26.0.1410.64  |
| Chrome 25.0.1364.172 |
| Chrome 25.0.1364.152 |
| Safari 8536.25       |
| Internet Explorer 8.0|
| Mozilla 5.0          |
| Internet Explorer 7.0|

可能であれば、バージョン番号が異なるかどうかに関係なく、ブラウザーの種類を変更して、理想的な出力が次のようになるようにしたいと考えていますSELECTCOUNTGROUP BY

| Browser           | Count |
+-------------------+-------+
| Chrome            |   29  |
| Safari            |   15  |
| Internet Explorer |   45  |
| Mozilla           |   20  |

結果をグループ化してカウントするために後でPHPで何かをする必要なく、データベースから結果を取得できるかどうかを確認するために、見落とした、または知らなかった可能性のあるさまざまなSQLコマンドについてさまざまな検索を試みましたが、これまでのところ私が取得できるのは、バージョン番号でグループ化およびカウントされたさまざまなブラウザーだけです。

それが不可能な場合、MySQL/PHP でこれを行う最善の方法はどれですか?

4

4 に答える 4

4
SELECT 
SUBSTRING_INDEX(browser,' ',1) as browser, 
count(SUBSTRING_INDEX(browser,' ',1)) as count 
FROM browsers
GROUP BY SUBSTRING_INDEX(browser,' ',1)
于 2013-06-03T11:19:18.367 に答える
2

列の最初の単語を使用するだけで、の部分文字列でグループ化できます。browser私が考えることができる唯一の問題は、それInternet explorerが として返されることInternetです。

SELECT SUBSTRING_INDEX(browser,' ',1) as browser, 
       COUNT( SUBSTRING_INDEX(browser,' ',1) ) as count 
FROM table_name
GROUP BY SUBSTRING_INDEX(browser,' ',1)
于 2013-06-03T11:15:57.057 に答える
2

これを試して

SELECT substring_index(browser,'',1),count(browser) as count
FROM table_name
GROUP BY browser 
于 2013-06-03T11:24:24.563 に答える
2

このスクリプトはテスト済みで動作します!

SELECT SUBSTRING_INDEX( Browser, ' ', 1 ) AS browser, count( id ) as count
FROM `table_name`
GROUP BY Browser
于 2013-06-03T11:27:11.453 に答える