2009-08-28 14 views
1

私は、テキストファイル(別の下に一つのエントリ、ファイルあたり50個のエントリ)にMySQLのデータベースから行からデータを取得するために、これを使用する:このコードは重複を削除しますか?

$ mysql --user=XXX --password=XXX --batch --skip-column-names \ 
-e "SELECT userid, displayname FROM Users" stackoverflowdb | \ 
split -l 50 -a 5 - "result." 

が、私はまたに重複したエントリをコピーしたくありませんこれらのファイル。このコードは重複を削除しますか、重複したエントリをコピーしないために何かを追加する必要がありますか?

+0

外あなたはユーザーテーブルのエントリを複製するために参照していますか? –

+0

はい、私はそこから重複した項目を望んでいません – Phil

答えて

3

DISTINCTディレクティブを使用するようにSQLを変更する

SELECT DISTINCT userid,displayname FROM Users 

は、useridとdisplaynameの一意の組み合わせのみが選択されるようにします。

ただし、同一の表示名を持つユーザーIDは禁止されません。

+0

すばらしい、ありがとう。 upvoted。ちょうど...テキストファイルがディレクトリに作成されることを確かめたかったのですか? – Phil

+1

splitはデフォルトで現在の作業ディレクトリに作成すると思います。 – cms

+0

私はそれをこの方法で走らせました。それはうまくいくようです...素晴らしい! xD – Phil

1
SELECT DISTINCT userid,displayname FROM Users 

..またはデータベース

mysql --user=XXX --password=XXX --batch --skip-column-names \ 
-e "SELECT userid, displayname FROM Users" stackoverflowdb | \ 
sort -u | \ 
split -l 50 -a 5 - "result." 
関連する問題