2014-06-16 15 views
8

Ngay bây giờ khi tôi xuất bảng MYSQL thành tệp CSV, tôi nhận được \ N cho trường NULL trong cơ sở dữ liệu được mong đợi. Nếu có cách nào để thay đổi đầu ra \ N thành một chuỗi rỗng khi xuất bảng thành csv?Cách xử lý trường rỗng khi xuất bảng MYSQL sang CSV

Cảm ơn

SELECT 'CU_CustomerID','CU_UserName','CU_Password','CU_Email','CU_Company','CU_Comment','CU_LastBasket','CON_FirstName','CON_MiddleI','CON_LastName','CON_Address1','CON_Address2','CON_City','CON_State','CON_Province','CON_Country','CON_Zip','CON_Phone1','CON_Phone2' 
UNION 
SELECT T1.CU_CustomerID,T1.CU_UserName,T1.CU_Password,T1.CU_Email,T1.CU_Company,T1.CU_Comment,T1.CU_ShopperPoints,T2.CON_FirstName,T2.CON_MiddleI,T2.CON_LastName,T2.CON_Address1,T2.CON_Address2,T2.CON_City,T2.CON_State,T2.CON_Province,T2.CON_Country,T2.CON_Zip,T2.CON_Phone1,T2.CON_Phone2 
FROM CUSTOMERS AS T1 
INNER JOIN CONTACT AS T2 ON T1.CU_CustomerID = T2.CON_CustomerID 
WHERE T1.CU_CustomerID BETWEEN 0 AND 1000 
INTO OUTFILE 'customers.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 

Trả lời

8

Từ MySQL documentation

Nếu LĨNH VỰC bỏ trốn bằng cách nhân vật là trống rỗng, không có ký tự được thoát và NULL là đầu ra như NULL, không \ N. Nó có lẽ không phải là một ý tưởng tốt để chỉ định một ký tự thoát rỗng, đặc biệt nếu các giá trị trường trong dữ liệu của bạn chứa bất kỳ ký tự nào trong danh sách vừa được đưa ra.

+0

Vì vậy, trong trường hợp của tôi, làm thế nào tôi sẽ đầu ra trường NULL để trống chuỗi thay vì \ N? truy vấn chính xác là gì? cảm ơn – user2700690

+0

@ user2700690 Vui lòng thêm tuyên bố của bạn, sau đó tôi có thể sửa nó. Đã thêm – Jens

+0

truy vấn. cảm ơn bạn – user2700690

1

Chỉ trong trường hợp. Để tránh gõ "ifnull (var, '') như var" cho mỗi một đơn biến có thể sử dụng này:

SELECT GROUP_CONCAT(CONCAT("IFNULL(",COLUMN_NAME,",'') AS ", COLUMN_NAME)) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = '<table name>' 
AND TABLE_SCHEMA = '<schema name>' 
ORDER BY ORDINAL_POSITION 
0

Các hardway: -

 
SELECT 'CU_CustomerID','CU_UserName','CU_Password','CU_Email','CU_Company','CU_Comment','CU_LastBasket','CON_FirstName','CON_MiddleI','CON_LastName','CON_Address1','CON_Address2','CON_City','CON_State','CON_Province','CON_Country','CON_Zip','CON_Phone1','CON_Phone2' 
UNION 
SELECT COALESCE(T1.CU_CustomerID,''),COALESCE(T1.CU_UserName,''),COALESCE(T1.CU_Password,''),COALESCE(T1.CU_Email,''),COALESCE(T1.CU_Company,''),COALESCE(T1.CU_Comment,''),COALESCE(T1.CU_ShopperPoints,''),COALESCE(T2.CON_FirstName,''),COALESCE(T2.CON_MiddleI,''),COALESCE(T2.CON_LastName,''),COALESCE(T2.CON_Address1,''),COALESCE(T2.CON_Address2,''),COALESCE(T2.CON_City,''),COALESCE(T2.CON_State,''),COALESCE(T2.CON_Province,''),COALESCE(T2.CON_Country,''),COALESCE(T2.CON_Zip,''),COALESCE(T2.CON_Phone1,''),COALESCE(T2.CON_Phone2,'') 
FROM CUSTOMERS AS T1 
INNER JOIN CONTACT AS T2 ON T1.CU_CustomerID = T2.CON_CustomerID 
WHERE T1.CU_CustomerID BETWEEN 0 AND 1000 
INTO OUTFILE 'customers.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 

này sẽ mặc định tất cả các giá trị cho một chuỗi rỗng thay vì NULL ('\ N').

Các vấn đề liên quan