SQL As Understood By SQLiteによると、SQLiteのクエリで文字列置換をするには、replace関数を使えばよい。

“irc/logs/XXXX” を “logs/irc/XXXX” に置換しようとすると

sqlite> select sqlite_version(*) ;
3.3.6
sqlite> select replace(name,'irc/logs/','logs/irc/') from wiki where name like 'irc/logs%';
SQL error: no such function: replace

SQLite3.3.6ではサポートしてないのかな?orz
仕方がないのでsubstrと文字列結合(||)で対処。

select 'logs/irc/' || substr(name,12,1000) from wiki where name like 'irc/logs%';
logs/irc/.02.14

お。うまくいった。

全部updateする。

update wiki set name = 'logs/irc/' || substr(name,12,1000) where name like 'irc/logs%';

おしまい。

カテゴリー: 技術情報

1件のコメント

怒涛のめもめもリンク集 | SQLiteで正規表現 · 2009-10-27 15:40

[…] SQLiteで文字列置換 « 来栖川電算 […]

現在コメントは受け付けていません。