web-dev-qa-db-ja.com

SQLiteデータベースを検索および更新クエリで更新する方法は?

私のSQLの知識は、特にSQLiteに関して非常に制限されていますが、これはある種の一般的なクエリになると思います...または、検索と置換のためではないかもしれません...

SQLiteにこの音楽データベースがありますが、もちろんさまざまなフィールドがありますが、ここで重要なのは「media_item_id」と「content_url」です。

「content_url」の例を次に示します。

file:///c:/users/nazgulled/music/band%20albums/devildriver/%5b2003%5d%20devildriver/08%20-%20what%20does%20it%20take%20(to%20be%20a%20man).mp3

このようなエントリを検索するクエリを探しています。「content_url」はそのパターンに従い、それ(「content_url」)を別のものに置き換えます。

たとえば、一般的な「content_url」は次のようになります。

file:///c:/users/nazgulled/music/band%20albums/BAND_NAME/ALBUM_NAME/SONG_NAME.mp3

そして、私はこれらすべてのエントリを次のものに置き換えたいです:

file:///c:/users/nazgulled/music/bands/studio%20albums/BAND_NAME/ALBUM_NAME/SONG_NAME.mp3

1つのクエリでどのように実行できますか?

追伸:私はFirefox SQLite Managerを使用しています(Windowsより優れた無料の代替ツールを見つけることができませんでした)。

26
Ricardo Amaral

あなたはおそらくreplace関数を探しています。

例えば、

update table_name set 
  content_url = replace(content_url, 'band%20albums', 'bands/studio%20albums')
where
  content_url like '%nazgulled/music/band_20albums/%';

http://sqlite.org/lang_corefunc.html にあるその他のドキュメント

50
laalto