我正在开发一个项目,我从数据库加载记录并对它们运行一些验证检查,例如模式搜索,它返回某个模式的索引。记录本身可能非常大,一个字段最多可达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文件不同。
但这只是一个疯狂的猜测。
感谢任何帮助。 提前致谢
答案 0 :(得分:1)
由于您已经发现数据库使用\n
作为换行符,并且文本文件使用\r\n
作为换行符(感谢Tom)。我找到了一个你可以使用的解决方案。
您可以将\ n替换为\ r \ n,以便它与您的文本文件匹配。
您可以在选择查询中使用:REPLACE(column, '\n', '\r\n')
。