91

有人可以告诉我如何在我在 MySql 表中输入的文本中添加新行吗?

我尝试'\n'在我输入的行中使用 withINSERT INTO语句,但'\n'按原样显示。

实际上,我已经在 MS Access 中创建了一个包含一些数据的表。MS Access 添加新行与'\n'. 我正在将 MS Access 表数据转换为 MySql 。但是当我转换时,'\n'当我从 PHP 表单上的 MySql 表中显示它时,所有文本都被忽略并且所有文本都显示在一行中。

谁能告诉我 MySQL 如何在文本中添加新行?期待回复,谢谢!!

4

12 回答 12

81

如果您对跨越多行的 SQL 命令感到满意,那么oedo 的建议是最简单的:

INSERT INTO mytable (myfield) VALUES ('hi this is some text
and this is a linefeed.
and another');

我刚遇到一种情况,最好将 SQL 语句全部放在一行上,所以我发现它的组合CONCAT_WS()CHAR()我有用。

INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'and this is a linefeed.', 'and another'));
于 2011-02-11T18:10:20.713 回答
36

在实际的 SQL 查询中,您只需添加一个换行符

INSERT INTO table (text) VALUES ('hi this is some text
and this is a linefeed.
and another');
于 2010-05-25T07:54:54.860 回答
26

作为记录,我想在现有数据中添加一些换行符,我开始\n工作了......

样本数据:

Sentence. Sentence. Sentence

我做了:

UPDATE table SET field = REPLACE(field, '. ', '.\r\n')

但是,它也适用于 just\r和 just \n

于 2010-12-10T16:52:56.170 回答
17
INSERT INTO test VALUES('a line\nanother line');

\n在这里工作正常

于 2012-05-03T14:39:36.213 回答
14

MySQL 在大多数情况下可以很好地记录换行符,但问题是,您需要<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

于 2014-11-30T11:27:27.383 回答
9
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
于 2013-04-05T22:05:43.250 回答
5

首先,如果您希望它显示在 PHP 表单上,介质是 HTML,因此将使用<br />标签呈现新行。检查页面的源 HTML - 您可能会将新行呈现为换行符,在这种情况下,您的问题只是将文本转换为输出到 Web 浏览器。

于 2010-05-25T07:53:43.877 回答
2

在 SQL 或 MySQL 中,您可以使用charchr函数在 ASCII 13 中输入用于回车换行,\n等效。但正如@David M 所说,您很可能希望 HTML 显示此中断,而 br 将起作用。

于 2010-05-25T08:15:34.127 回答
1
  1. 您必须在插入数据库之前\n替换为。<br/>

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

    在这种情况下,在数据库表中,您将看到<br/>而不是新行。

    例如

    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


    您将在此处找到有关函数 str_replace() 的详细信息:http: //php.net/manual/en/function.str-replace.php

于 2012-06-14T08:02:26.440 回答
0

使用<pre>标签而不是<p>在 html 中显示您\n的数据库

于 2021-04-12T07:42:54.053 回答
0

添加到@DonKirby给出的答案

INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'and this is a linefeed.', 'and another'));

是不必要的

CHAR()函数不接受完整的utf8值集。它只接受ASCII值。

见 - https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_char

因此更合适的是CHAR(10 USING ASCII)使用CHAR(10 USING utf8)

于 2021-10-02T22:34:33.190 回答
-3

您可以简单地\n<br/>标签替换所有内容,以便在显示页面时会换行。

UPDATE table SET field = REPLACE(field, '\n', '<br/>')
于 2012-05-04T10:34:30.523 回答