字符串长度的差异(数据库 - .txt文件)

时间:2017-04-24 11:39:26

标签: java mysql database text-files

我正在开发一个项目,我从数据库加载记录并对它们运行一些验证检查,例如模式搜索,它返回某个模式的索引。记录本身可能非常大,一个字段最多可达200​​万个字符。出于这个原因,我已将一些测试数据复制到纯文本文件中并将其保存在本地。

我遇到的问题是,当我运行测试时,我从本地文本文件中读取的字符串的长度与MySQL数据库中的字符串不同。从SQL数据库返回的索引比从本地存储的纯文本文件返回的索引更低(完整的字符串更短)。

数据库字段示例(type = mediumtext)

11:00 i have started entering into this database field
12:00 continueing
13:00 some more
14:00 end of database work

当我检查数据库字段的长度时(使用select length(field)),它告诉我它的长度为115

当我将数据库字段的确切内容粘贴到Notepad ++中时,它告诉我有118个字符。

我知道一个事实,它不是一个设置差异,因为我的代码返回的索引的差异正在增加,因为我进一步进入长字符串。

我的猜测是MySQL存储换行符/空格/制表符的方式与.txt文件不同。

但这只是一个疯狂的猜测。

感谢任何帮助。 提前致谢

1 个答案:

答案 0 :(得分:1)

由于您已经发现数据库使用\n作为换行符,并且文本文件使用\r\n作为换行符(感谢Tom)。我找到了一个你可以使用的解决方案。

您可以将\ n替换为\ r \ n,以便它与您的文本文件匹配。 您可以在选择查询中使用:REPLACE(column, '\n', '\r\n')