(sqlite3)如何rtrim' \ n'作为原始字符串?

时间:2013-11-14 12:14:21

标签: python sqlite python-2.7

我有一个名为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将保持不变)

1 个答案:

答案 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')")