anz130

导航

【转】去掉Sqlite3 数据库中的前后回车换行符(newline)

原文http://www.blogjava.net/pts/archive/2013/06/10/400... 时间: 2013-06-10

转自:http://www.ityuedu.com/article/26601034478/;jsessionid=546A853CF3B219B9A242C75E039CB846

 

最近使用rails 做了一个小小的小网站, 数据库用的是sqlite3, 数据库数据是从一个xml 文件中导入的, 有很多前导回车和末尾空行, 而页面显示的时候会自动把回车替换成, 结果就是显示出来的内容无端端的多了很多空白, 整个页面看起来很不河蟹协调. 今天闲下来了决定把这些无用的回车换行符去掉.

不就是一个trim 嘛, 很快进入sqlite 命令行界面, 输入:

sqlite> update jokes set content=trim(content,'\n');

搞定, 收工…????? 刷新页面一看, 我了个去, 不行耶~~, sqlite 不认\n, 换成trim(content, '\r'), trim(content, '\r\n') 和trim(content, '\n\r') 都不行, 哥是个懒人, 不想写代码解决, 于是google 了下, 发现有人提供这个解决方法:

x'hh' should work, where hh are hex digits. So if your file contained hex 0D type line breaks: UPDATE t SET essay_without_newlines = Replace(essay, x'0D', '~');

也就是说sqlite 中可以使用x'hh' 这种语法来表示一个字符. 试了下x'0D', 不行…..再试试x'0A', 就好了:

sqlite> update jokes set content=trim(content, x'0A');

流水账一笔, 没啥技术含量. 纯粹是做个备忘, 也希望对别人有所帮助.

http://liang.eu/web-dev/trim-newlines-in-sqlite3

posted on 2015-11-03 15:50  星n  阅读(843)  评论(0编辑  收藏  举报