問題
這其實是個常用技能,大部分gui工具都提供了一些相關的操作,但是由於我用的都是基於web的管理工具,對結果條目超長,查詢時間超長就很難適應。所以常常需要去終端導。
終端裡面眾所周知的匯出工具是mysqldump,不過這個工具適合整表匯出和備份之用,如果需要指定查詢和輸出格式,就比較麻煩了。谷歌一輪無解。
解決這個方法的思路是呼叫mysql命令,直接返回查詢結果。再用sed調整格式為csv。這是個好思路,不過我不懂sed,看到那串天書般的指令不禁懵逼。但是我懂點awk啊,一樣的啦。
我的命令是:
mysql -b -h'localhost' -u'root' -p -d database -e "select * from b_brand;"|awk ''>brand.csv
以豎線「|」為分隔,前半截是mysql查詢,大家應該找到了查詢語句就是-e後面的,-d指定database,各種其他引數看不懂的就各自查文件吧。執行這個命令會直接把查詢結果輸出到終端。由於這個結果是用tab分隔字段,所以後面要做的就是把tab格式化了。
豎線「|」後面至「>」的awk就是做這事的,gsub是查詢\t字元換成英文逗號作為csv的分隔符,相信熟悉awk的同學還會在這個步驟發揮出其他作用。畢竟awk就是專門處理這種**資料的。到此為止呢我們就得到了我們最終需要的csv格式的**結果了。
但是這樣還是輸出在終端的。所以我們用「>」操作符將輸出匯入到乙個檔案,所以「>」後面就是你需要的結果檔名。如果一次執行中斷了,我們還可以用「>>」的追加形式再次執行。這些都是linux的基本操作啦。
後記不過執行這個命令的時候需要注意的是,很多sql語句會使用` 符號來引用表名和欄位名等等。但是在終端命令時 ` 符號是有特殊含義的。所以要注意這個字元的使用,我的方式是全部去掉。
mysql抓取csv mysql匯出csv檔案
select from select id url 大分類 分類 貼吧名稱 關注使用者數 帖子數量 簡介 帖子名稱 樓主id 發表時間 採集時間 首頁body body1 body2 state replys union select id,url,大分類,分類,貼吧名稱,關注使用者數,帖子數量,簡...
mysql匯入乙個csv mysql匯入csv檔案
前景 有大量的csv資料重oracle匯出字元編碼gb2312要匯入mysql 1 shell先修改csv文字編碼格式 iconv f gb18030 t utf 8 gb2312file utf8file gb18030是2312的乙個超集 2 登入mysql執行下面命令 load data in...
mysql匯出位置 mysql匯出命令
資料庫備份 data mysql bin mysqldump hlocalhost u root p do my db single transaction q gzip my db.sql.gz find home yourname backup mysql name 123.txt ctime ...