在mysql中,我們可以通過多種方式來提取表數(shù)據(jù)到別的地方,比如導(dǎo)出為csv文件、json文件、xml文件等等。下面我們來介紹其中兩種常用的方式。
第一種方式是使用SELECT INTO OUTFILE語句將表數(shù)據(jù)導(dǎo)出為csv文件。
SELECT * INTO OUTFILE '/tmp/mydata.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM mytable;
其中,SELECT語句用來選擇要導(dǎo)出的數(shù)據(jù),INTO OUTFILE指定導(dǎo)出的文件路徑和名稱,F(xiàn)IELDS TERMINATED BY指定數(shù)據(jù)字段之間的分隔符,ENCLOSED BY指定數(shù)據(jù)字段的邊界符,LINES TERMINATED BY指定每條記錄的結(jié)束符。
第二種方式是使用SELECT語句和管道符將表數(shù)據(jù)導(dǎo)出為json文件。
SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT('id', id, 'name', name)), ']') FROM mytable INTO OUTFILE '/tmp/mydata.json' ;
其中,SELECT CONCAT()用來將多條記錄連接成一個json數(shù)組,JSON_OBJECT()用來構(gòu)建每個記錄的json對象,GROUP_CONCAT()用來拼接所有json對象,INTO OUTFILE同上面的介紹。