0

質問

次のような csv ファイルがあります。

char num  
aaa,123  
bbb,123  
bbb,123  
bbb,123  
ccc,123  

csv ファイルの最も頻繁に表示されるレコードを mysql データベースに挿入したいだけです
--> [bbb,123]

だから私はデータベースがこのようなものであることを願っています:
(key:num)

char num  
bbb,123   

これを達成する方法はありますか?

私はこのように試しました

私はこのようにしてみました:

ALTER IGNORE TABLE table
ADD PRIMARY KEY (char,num);
しかし、結果は

char num  
aaa,123  
4

2 に答える 2

1

このクエリは、CSV からロードされたテーブルから指定された結果セットを返します。

SELECT c.char, c.num
  FROM loadtable c
 GROUP BY c.char, c.num
 ORDER BY COUNT(1) DESC
 LIMIT 1

クエリによって返された単一の行を別のテーブルに取得するには、たとえば

INSERT INTO another_table (char,num)
SELECT c.char, c.num
  FROM loadtable c
 GROUP BY c.char, c.num
 ORDER BY COUNT(1) DESC
 LIMIT 1
于 2013-02-14T20:18:33.977 に答える
-1

この時点で csv ファイルは既にデータベースに存在しますか? 私はあなたの試みからそう推測しているので、次のようなことを試すことができます:

SELECT char, num, MAX(count_column)
FROM
    (SELECT char, num, count(*) as count_column
    FROM table
    GROUP by 1, 2;)
于 2013-02-11T14:07:25.863 に答える