MySQL 导出 table 到文本文件字段名称

MySQL export table to text file fields name

假设我在 MySQL

中有以下 table
create table test_tbl
(
  col1 varchar(100),
  col2 varchar(100),
  amount int,
  created datetime
)

数据插入

Insert into test_tbl values('unu', 'doi', 10, '05/01/2015');
Insert into test_tbl values('patru', trei', 400, '04/01/2015');

我需要按以下格式导出 table 中的所有数据。该文件应为 txt 文件。

"col1"="unu","col2"="doi","amount"="10","created"="05/01/2015"
"col1"="patru","col2"="trei","amount"="400","created"="04/01/2015"

所以逻辑是: 每个列名的值以逗号分隔。

有没有可能在MySQL中得到这样的结果?

也许这可行。

使用CONCAT构建这样的字符串

SELECT 
CONCAT('"col1"="',col1,'","col2"="',col2,'","amount"="',amount,'","created"="',created,'"') t 
FROM test_tbl;

然后您也可以使用 INTO OUTFILE.

将其转储到文本文件
SELECT 
CONCAT('"col1"="',col1,'","col2"="',col2,'","amount"="',amount,'","created"="',created,'"') t 
FROM test_tbl
INTO OUTFILE 'C:/yourtextfile.txt'
CHARACTER SET latin1
FIELDS ENCLOSED BY ''
LINES TERMINATED BY '\r\n';

由于 CONCAT 只有 1 行,您不需要用值括起任何 columns/fields,因为它们是自定义的。仅使用换行符来终止每个 ROW.

希望有用!

用于导出 table 的数据-

SELECT  CONCAT('"col1"="',col1,'","col2"="',col2,'","amount"="',amount,'","created"="',DATE_FORMAT(created,'%d/%m/%Y'),'"') t  FROM test_tbl INTO OUTFILE '/tmp/test.txt' CHARACTER SET latin1 FIELDS ENCLOSED BY '' LINES TERMINATED BY '\r\n';

用于从 csv

导入 table
    mysql> CREATE TABLE `test_tbl` (
    ->   `col1` varchar(100) DEFAULT NULL,
    ->   `col2` varchar(100) DEFAULT NULL,
    ->   `amount` int DEFAULT NULL,
    ->   `created` datetime DEFAULT NULL
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    -> ;
Query OK, 0 rows affected (0.44 sec)

mysql> load data local infile 'test.txt' into table test_tbl fields terminated by ',' ENCLOSED BY '"' lines terminated by '\r\n' (@col1, @col2,@col3,@col4)
    -> set col1 = substr(@col1,8), col2 = substr(@col2,8), amount = substr(@col3,10), created = str_to_date(substr(@col4,11), '%d/%m/%Y');
Query OK, 2 rows affected (0.09 sec)
Records: 2  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from test_tbl;
+-------+------+--------+---------------------+
| col1  | col2 | amount | created             |
+-------+------+--------+---------------------+
| unu   | doi  |     10 | 2015-01-05 00:00:00 |
| patru | trei |    400 | 2015-01-04 00:00:00 |
+-------+------+--------+---------------------+
2 rows in set (0.00 sec)