0

次のSQLコマンドがあり、列ヘッダー付きのcsvファイルとして保存する必要があります。

mysql > SELECT  a.last_name, a.first_name, username, is_active, graduation
        FROM auth_user a
        INNER JOIN 
            userprofile_userprofile u
            ON a.id = u.user_id
        WHERE a.id>39 AND a.is_active=1 ORDER BY last_name

どうすればいいですか?

4

4 に答える 4

3

構文上の間違いを犯していない場合、これは機能するはずです。

SELECT 'LastName', 'FirstName', 'Username', 'IsActive', 'Graduation'
UNION ALL
SELECT a.last_name, a.first_name, username, is_active, graduation
INTO OUTFILE 'yourFile.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM auth_user a
INNER JOIN  userprofile_userprofile u
ON a.id = u.user_id
WHERE a.id>39 AND a.is_active=1
ORDER BY last_name

MySQLでは列ヘッダーを追加できないため、それらを結合してハードコーディングできます。

ここSELECT ... INTOで構文を確認することもできます。

于 2012-04-04T20:14:16.117 に答える
2

MySQLは、エクスポートに列ヘッダーを含める機能をネイティブにサポートしていないようです。単純なグーグル検索は、ストリーム編集を使用してエクスポートファイルに列を追加するこの記事を返しました。

別のオプションのように思われるので、このSO投稿(および承認された解決策)を読むこともできます。

于 2012-04-04T20:03:30.813 に答える
0

使ってみましたINTO OUTFILE 'file_name' export_optionsか?

http://dev.mysql.com/doc/refman/5.0/en/select.html

于 2012-04-04T20:02:56.977 に答える
-1

単純にBCPコマンドを使用できます。この場合、SQL管理スタジオを使用している場合はxp_cmdshellを有効にする必要があります。

これが例です

DECLARE    @bcpCommand varchar(2000)

SET @bcpCommand = 'bcp "SELECT * FROM users" queryout "c:\dump.csv" -U USERNAME -P PASSWORD -c'

EXEC master..xp_cmdshell @bcpCommand

csvファイルは、データベースがホストされているサーバーにあることに注意してください。

于 2012-04-04T20:01:37.193 に答える