我有一个名为table1的sqlite表
cur.execute("CREATE TABLE IF NOT EXISTS Table1(ID INTEGER PRIMARY KEY AUTOINCREMENT, URL varchar(500), Title varchar(500))")
网址包含以下数据:http://www.site.com/content/ \ n
我想删除最后一个原始字符串\ n,但是使用此方法失败
cur.execute("UPDATE Table1 SET URL = rtrim(URL,'\n'), Title = rtrim(Title,'\n')")
结果保持不变(ULR:http://www.site.com/content/ \ n)。似乎' \ n'被视为换行符而不是原始字符串,我怎么能rtrim \ n作为原始字符串? (以n结尾的URL将被修剪,而以n结尾的URL将保持不变)
答案 0 :(得分:0)
声明:
cur.execute("UPDATE Table1 SET URL=rtrim(URL, '\n'), Title=rtrim(Title, '\n')")
适用于SQLite,它确实从字符串末尾删除换行符。如果这对您不起作用,则您的值最后没有换行符,或者您没有提交您的交易。
提供相同结果的替代方案:
您可以将换行符作为参数传递:
cur.execute('UPDATE Table1 SET URL=rtrim(URL, ?), Title=rtrim(Title, ?)', ('\n', '\n'))
使用X'...'
使用十六进制表示法指定BLOB文字:
cur.execute("UPDATE Table1 SET URL=rtrim(URL, X'0A'), Title=rtrim(Title, X'0A')")