sqlite, как заменить значение из CSV, сохраненное в столбце - PullRequest
0 голосов
/ 22 марта 2019

В моем приложении для Android есть таблица со столбцом с именем tag, этот столбец может содержать одно или несколько значений, разделенных запятыми, например:

test1,test,test2

Теперь я хочу переименовать одно из этих значений во всей таблице, у меня есть следующий запрос:

update mytable
set 
    tags = replace (tags, ',test,',',XXX,') // rename test with XXX
where
    tags like '%,test,%' 

это прекрасно работает, если значение находится между запятыми.

Как я могу добиться этого для ситуации, когда мое значение находится в начале или в конце CSV или является единственным значением в CSV.

1 Ответ

1 голос
/ 22 марта 2019

Вам нужно добавить запятые в начале и конце столбца и оперировать этим:

update mytable
set 
    tags = trim(replace(',' || tags || ',', ',test,', ',XXX,'), ',')
where
    ',' || tags || ',' like '%,test,%';

См. Демоверсию

...