mysql橫向和縱向合並sql數據用於展示,快遞導出導入海量數據


2020年3月11日12:03:47

MySQL版本5.7

 使用 UNION 縱向合並兩個sql的結果

SELECT DISTINCT(departments) as departments,SUM(final_price) as
        finalPrice,count(*) as orderCount
        FROM phc_order
GROUP BY departments
UNION
SELECT '總計' ,SUM(final_price) as
        finalPrice,count(*) as orderCount
        FROM phc_order

!注意如果上下sql的結果列數要一致不然就會出錯

departments finalPrice orderCount
兒科 0.53 69
婦科二 0.61 28
心外科 0.71 64
普外二科 0.43 34
泌尿外二科 0.23 10
燒傷科 0.19 23
科室1 14.06 17
腎血液科 0.07 8
腦血管中心 1.50 39
總計 18.33 292

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

使用 JOIN 橫向合並兩個sql的結果
SELECT A.*, B.*
FROM 
  (SELECT SUM(final_price) as finalPrice,count(*) as orderCount FROM phc_order) as A
  JOIN
  (SELECT SUM(final_price) as finalPrice5,count(*) as orderCount5 FROM phc_order
WHERE order_status = 5) as B

 
注意
finalPrice orderCount finalPrice5 orderCount5
18.33 292 2.21 22

 

 
 
 
快速出sql
SELECT true_name,area_info,address,tel_phone,mob_phone FROM shopnc_address into outfile 'd:/zx.xls'

在配置文件加入,並重啟

secure-file-priv=

  

windows本地測試結果

SELECT * FROM data_international into outfile 'd:/zx.xls';
受影響的行: 436593
時間: 0.523s

TRUNCATE TABLE data_international;
LOAD DATA INFILE 'd:/zx.xls' INTO TABLE data_international; 受影響的行: 436593 時間: 2.453s

  導出導入速度還挺快的

 
SELECT fields INTO OUTFILE 'file_name'
    [{FIELDS | COLUMNS}                     字段
        [TERMINATED BY 'string']                字段之間分隔符號
        [[OPTIONALLY] ENCLOSED BY 'char']       字段被包含在char中間
        [ESCAPED BY 'char']                     忽略字段里出現的char
    ]
    [LINES
        [STARTING BY 'string']              忽略開頭是string的行
        [TERMINATED BY 'string']            行分隔符
    ]
FROM test_table;

  

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]                      遇到重復的時候處理方法,替換或者是忽略
    INTO TABLE tbl_name                     導入數據的目的表名
    [PARTITION (partition_name,...)]        分區選擇
    [CHARACTER SET charset_name]            字符集
    [{FIELDS | COLUMNS}                     字段
        [TERMINATED BY 'string']                字段之間分隔符號
        [[OPTIONALLY] ENCLOSED BY 'char']       字段被包含在char中間
        [ESCAPED BY 'char']                     忽略字段里出現的char
    ]
    [LINES
        [STARTING BY 'string']              忽略開頭是string的行
        [TERMINATED BY 'string']            行分隔符
    ]
    [IGNORE number {LINES | ROWS}]          忽略行/列
    [(col_name_or_user_var,...)]            目的表的表字段名或者用戶變量名
    [SET col_name = expr,...]               設置表字段值

  參考文檔:https://www.cnblogs.com/wyzs/p/6762452.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM