在MySQL INSERT INTO文本中添加换行符
有人能告诉我如何添加一个新的行在我input一个MySql表中的文本?
我尝试使用INSERT INTO
语句input的行中的'\n'
,但显示'\n'
。
其实我已经在MS Access中创build了一些数据表。 MS Access用'\n'
添加新行。 我将MS Access表数据转换为MySql。 但是,当我转换时, '\n'
被忽略,所有的文本显示在一个单一的行中,当我从一个PHP窗体上的MySql表显示它。
任何人都可以告诉我如何在文本中添加一个新的行? 等待回应,谢谢!
如果您可以使用跨越多行的SQL命令,那么oedo的build议是最简单的:
INSERT INTO mytable (myfield) VALUES ('hi this is some text and this is a linefeed. and another');
我只是有一种情况,最好是将SQL语句全部放在一行中,所以我发现CONCAT_WS()
和CHAR()
的组合对我CONCAT_WS()
。
INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'and this is a linefeed.', 'and another'));
在实际的SQL查询中,您只需添加一个换行符
INSERT INTO table (text) VALUES ('hi this is some text and this is a linefeed. and another');
为了logging,我想在现有数据中添加一些换行符,并且\n
能够正常工作。
样本数据:
Sentence. Sentence. Sentence
我做了:
UPDATE table SET field = REPLACE(field, '. ', '.\r\n')
但是,它也适用于\r
和\n
。
INSERT INTO test VALUES('a line\nanother line');
\n
在这里工作得很好
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
首先,如果你想让它显示在一个PHP表单上,那么这个媒体就是HTML,所以一个新的行将会用<br />
标签来呈现。 检查页面的HTML源代码 – 您可能会将新行按照换行方式呈现,在这种情况下,您的问题仅仅是将输出文本转换为Web浏览器。
-
你必须在插入数据库之前用
\n
replace\n
。$data = str_replace("\n", "<br/>", $data);
在这种情况下,在数据库表中,你会看到而不是新行。
例如
First Line
Second Line
会看起来像:
First Line<br/>Second Line
-
用新行查看数据的另一种方法。 首先从数据库中读取数据。 然后用
\n
<br/>
例如:echo $data;
$data = str_replace("\n", "<br/>", $data);
echo "<br/><br/>" . $data;
输出:
First Line Second Line
First Line
Second Line
你可以在这里find关于函数str_replace()的细节: http : //php.net/manual/en/function.str-replace.php
在大多数情况下,MySQL可以很好地logging换行符,但问题是,您需要在实际string中使用<br />
标签来显示断点。 由于您提到过PHP,因此可以使用nl2br()
函数将换行符(“ \n
”)转换为HTML <br />
标记。
就像这样使用它:
<?php echo nl2br("Hello, World!\n I hate you so much"); ?>
输出( 在HTML中 ):
Hello, World!<br>I hate you so much
这里有一个手册的链接: http : //php.net/manual/en/function.nl2br.php
在SQL或MySQL中,您可以使用char
或chr
函数在ASCII 13中input回车换行, \n
equivilent。 但正如@大卫M指出,你很可能希望有HTML显示这个突破和br是什么将工作。
这听起来像你混淆表内容的某些特定工具的内容呈现。
我假设你正在使用命令行(shell)客户端, mysql
提示符都进入和显示在这个列中的文本。 我也猜测你是被保存为一个换行符,只是它被呈现的方式导致你的困惑。
尝试使用GUI工具来访问您的MySQL数据。
你可以简单地用\n
标签replace所有的\n
,这样当页面被显示时就会断线。
UPDATE table SET field = REPLACE(field, '\n', '<br/>')