在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浏览器。

  1. 你必须在插入数据库之前用\nreplace\n

    $data = str_replace("\n", "<br/>", $data);

    在这种情况下,在数据库表中,你会看到而不是新行。

    例如

    First Line
    Second Line

    会看起来像:

    First Line<br/>Second Line

  2. 用新行查看数据的另一种方法。 首先从数据库中读取数据。 然后用\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中,您可以使用charchr函数在ASCII 13中input回车换行, \n equivilent。 但正如@大卫M指出,你很可能希望有HTML显示这个突破和br是什么将工作。

这听起来像你混淆表内容的某些特定工具的内容呈现。

我假设你正在使用命令行(shell)客户端, mysql提示符都进入和显示在这个列中的文本。 我也猜测你是被保存为一个换行符,只是它被呈现的方式导致你的困惑。

尝试使用GUI工具来访问您的MySQL数据。

你可以简单地用\n标签replace所有的\n ,这样当页面被显示时就会断线。

 UPDATE table SET field = REPLACE(field, '\n', '<br/>')