Как удалить все ТЕКСТ / Номера между (и) в sqlite3? - PullRequest
0 голосов
/ 31 августа 2009

Я ломал голову, пытаясь понять, как удалить текст / цифры между (и) в столбце в моей базе данных sqlite3. Я пробовал rtrim, ltrim, substr () все безрезультатно. Любой эксперт гуру sqlite3 хочет помочь мне? Я бы оценил это. Спасибо.

1 Ответ

0 голосов
/ 31 августа 2009

Может частично зависеть от вашей реализации SQLite. От документы :

Оператор REGEXP - это специальный синтаксис для пользовательской функции regexp (). По умолчанию пользовательская функция regexp () не определена, поэтому использование оператора REGEXP обычно приводит к сообщению об ошибке. Если пользовательская функция с именем "regexp" добавляется во время выполнения, эта функция будет вызываться для реализации оператора REGEXP.

Если ваша реализация имеет , определенную REGEXP, то она должна быть такой же простой, как регулярное выражение "(.*?)\(.*?\)(.*)", возвращая только группы 1 и 2, чтобы игнорировать то, что находится внутри скобок.

Этот подход не переносим, ​​поскольку, возможно, в большинстве реализаций SQLite не определено REGEXP.

Кто-то на этом форуме недавно прошел длинную ветку с просьбой почти об одном и том же, и ему не повезло. Насколько я знаю, нет встроенной функциональности, чтобы сделать это.

Его окончательный ответ там заключался в том, чтобы обрезать постоянное количество символов, потому что все данные равномерно оканчивались на '@ xyz.com' - если ваши данные одинаково одинаковы, вы можете просто обрезать начальные и конечные Символы X и Y.

На самом деле, еще в 2003 , кто-то сделал патч для charindex поддержки , но по какой-то причине он, очевидно, никогда не был добавлен в транк. Кто-то еще сделал аналогичный патч с большей функциональностью , но для этого требуется загрузить внешнюю разделяемую библиотеку - опять же, не точно переносимый.

Последний вариант может быть вашим лучшим вариантом - написание общей библиотеки на C и LOADing из SQLite . Или вы можете просто реализовать модификацию строки на любом языке, который вы используете SQLite:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...