0

table1 という名前の sqlite テーブルがあります

cur.execute("CREATE TABLE IF NOT EXISTS Table1(ID INTEGER PRIMARY KEY AUTOINCREMENT, URL varchar(500), Title varchar(500))")

URL には次のようなデータがあります: 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」は生の文字列ではなく改行文字として扱われるようですが、\n を生の文字列として rtrim するにはどうすればよいですか? (\n で終わる URL はトリミングされますが、n で終わる URL はそのまま残ります)

4

1 に答える 1

0

ステートメント:

cur.execute("UPDATE Table1 SET URL=rtrim(URL, '\n'), Title=rtrim(Title, '\n')")

文字列の末尾から改行を削除します。これがうまくいかない場合は、値の末尾に改行がないか、トランザクションをコミットしていません。

同じ結果が得られる代替手段:

  • パラメータとして改行を渡すことができます:

    cur.execute('UPDATE Table1 SET URL=rtrim(URL, ?), Title=rtrim(Title, ?)', ('\n', '\n'))
    
  • X'...'16 進表記を使用して、BLOB リテラルを指定するために使用します。

    cur.execute("UPDATE Table1 SET URL=rtrim(URL, X'0A'), Title=rtrim(Title, X'0A')")
    
于 2013-11-14T12:44:15.047 に答える