sqlite, как заменить значение из CSV, сохраненное в столбце

#android #sqlite #csv #replace #rename

#Android #sqlite #csv #заменить #переименовать

Вопрос:

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

test1,test,test2

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

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

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

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

Ответ №1:

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

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

Смотрите демонстрацию