在MySQL INSERT INTO文本中添加换行符

时间:2010-05-25 07:50:24

标签: mysql newline insert-into

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

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

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

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

12 个答案:

答案 0 :(得分:66)

如果您的SQL命令可以跨多行传输,那么oedo's建议是最简单的:

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'));

答案 1 :(得分:30)

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

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

答案 2 :(得分:19)

为了记录,我想在现有数据中添加一些换行符,然后让\n正常工作......

示例数据:

Sentence. Sentence. Sentence

我做了:

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

但是,它仅适用于\r\n

答案 3 :(得分:10)

INSERT INTO test VALUES('a line\nanother line');

\n在这里工作正常

答案 4 :(得分:10)

在大多数情况下,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

答案 5 :(得分:5)

INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");

答案 6 :(得分:4)

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

答案 7 :(得分:1)

  1. 在插入数据库之前,您必须将\n替换为<br/>

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

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

    e.g。

    First Line {
    {1}}

    看起来像:

    Second Line

  2. 使用新行查看数据的另一种方法。首先从数据库中读取数据。然后将First Line<br/>Second Line替换为\n,例如:

    <br/> {
    {1}} {
    {1}}

    输出:

    echo $data;

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


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

答案 8 :(得分:0)

在SQL或MySQL中,您可以使用charchr函数输入ASCII 13作为回车换行符,\n等效。但正如@David M所说,你很可能希望让HTML显示这个突破,并且br是可行的。

答案 9 :(得分:0)

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

答案 10 :(得分:-1)

听起来我觉得你把桌子上的内容混淆了一些特定工具对这些内容的渲染。

我假设您正在使用命令行(shell)客户端,mysql提示输入并显示此列中的文本。我也猜测你正在被存储为换行符,并且只是它被呈现的方式导致你的混乱。

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

答案 11 :(得分:-3)

您可以简单地将所有\n替换为<br/>标记,以便在显示页面时它会断行。

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