Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql选择到输出文件,不带任何行终止字符_Mysql_Select_Formatting_Into Outfile_Select Into Outfile - Fatal编程技术网

mysql选择到输出文件,不带任何行终止字符

mysql选择到输出文件,不带任何行终止字符,mysql,select,formatting,into-outfile,select-into-outfile,Mysql,Select,Formatting,Into Outfile,Select Into Outfile,我尝试将表中一个字段中的所有数据打印到一个文件中,不带任何行/字段终止字符。我只想将所有行连接起来,并在输出行中打印为一行。以下是我的做法: CREATE TABLE tbl (txt VARCHAR(100)); INSERT INTO tbl VALUES ("text1"); INSERT INTO tbl VALUES ("text2"); INSERT INTO tbl VALUES ("text3"); SELECT txt FROM tbl; SELECT txt INTO O

我尝试将表中一个字段中的所有数据打印到一个文件中,不带任何行/字段终止字符。我只想将所有行连接起来,并在输出行中打印为一行。以下是我的做法:

CREATE TABLE tbl (txt VARCHAR(100));
INSERT INTO tbl VALUES ("text1");
INSERT INTO tbl VALUES ("text2");
INSERT INTO tbl VALUES ("text3");

SELECT txt FROM tbl;

SELECT txt INTO OUTFILE 'test.txt' LINES TERMINATED BY '' FROM tbl;
不幸的是,在输出中我得到了标签:

text1   text2   text3   
如果我加上

FIELDS TERMINATED BY ''
然后将所有100个字符打印到文件(VARCHAR(100)

我应该怎么做才能把所有事情都理解为:

text1text2text3

非常感谢!

假设文本列本身没有空格,请尝试 从tbl中选择替换(GROUP_CONCAT(txt),',','')作为txt到输出文件“test.txt”

如果数据中有空格,则再环绕一个替换(,'','','')

如果您遇到限制(组包含多少行),那么如果您使用的是类Unix操作系统,最好使用以下命令

cat 'test.txt' | tr -d '\t'

多亏了@Parag,我能够通过以下方式解决我的问题:

SELECT GROUP_CONCAT(txt SEPARATOR '') INTO OUTFILE 'test.txt' LINES TERMINATED BY '' FROM tbl;
这样,我就不必用REPLACE来包装所有内容,也不必担心文本是否包含GROUP_CONCAT使用的默认分隔符,即逗号“,”或不是

值得记住的一件重要事情是,GROUP_CONCAT()有一个最大长度的限制,当您的字段很长时,您可能会遇到这个限制。在我的例子中,txt字段超过900个字符,因此我必须使用:

SET SESSION group_concat_max_len = 1000000
这确实奏效了,但我想知道是否有更好的解决方案?

使用转储文件:

CREATE TABLE tbl (txt VARCHAR(100));
INSERT INTO tbl VALUES ("text1");
INSERT INTO tbl VALUES ("text2");
INSERT INTO tbl VALUES ("text3");

SELECT txt FROM tbl;

SELECT txt INTO DUMPFILE 'test.txt';

你好,帕拉格,谢谢你的帮助!多亏了你的建议,我实际上已经解决了我的问题。我马上就要在下面发布我的解决方案。我不理解你在文本栏中对空格的评论。如果group_by使用的默认分隔符是逗号“”,为什么空格很重要?即使它是空格,我为什么要这样做我需要在数据库级别执行所有操作,因此使用tr不是一个选项。无论如何,我在Windows上,所以如果我想使用它,我甚至无法使用它。再次感谢您的帮助!
CREATE TABLE tbl (txt VARCHAR(100));
INSERT INTO tbl VALUES ("text1");
INSERT INTO tbl VALUES ("text2");
INSERT INTO tbl VALUES ("text3");

SELECT txt FROM tbl;

SELECT txt INTO DUMPFILE 'test.txt';