2014-01-02 4 views
0

Я пытаюсь заменить кучу строк в базе данных SQLite.Как сделать замену подстановочными знаками в SQLite?

Я хочу удалить CHECKCARD \d\d\d\d (в обозначении регулярного выражения) с самого начала.

Есть ли у этой функции функция replace для SQLite?

т.е. CHECKCARD 1215 AA BB CC должен стать AA BB CC

CHECKCARD 0715 DD EE должен стать DD EE

Я попытался

update ZUSERPAYEE set ZNAME = replace (ZNAME,"CHECKCARD ____ ","");

, но это не сработало.

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

ответ

1

Функция SQLite substr() должен быть ваш спаситель здесь:

UPDATE ZUSERPAYEE 
SET ZNAME = substr(ZNAME, 16) 
WHERE ZNAME LIKE "CHECKCARD %" 

Найдет любой строке, где Zname начинается с CHECKCARD и заменить значение Zname с подстроки с шестнадцатого символа (т.е. после того, как CHECKCARD ####) к концу.

More on SQLite core functions, including a surprisingly featureful set of string handling functions.

+0

Позвольте мне быть один, чтобы подтолкнуть вас более 2000 репутации! Спасибо –

+0

@ Ze'ev Почему, спасибо, и я рад помочь вам! –

+0

может быть предложение WHERE перед предложением SET? И может ли SET и WHERE быть строчными? Просто любопытно. –

Смежные вопросы