Как стать автором
Обновить

Комментарии 9

счётчик можно вынести в отдельное поле, либо ставить между ними символ недопустимый в идентификаторе…
Безусловно, счетчик можно вынести в отдельное поле, можно даже это отдельное поле сделать автоинкрементом, а индекс сделать по «значимому + счетчик» и получить автоинкременирование для каждого уникального значения значимого поля. Правда, если индекс в последствии будет удален — получим такое, что и подумать страшно.
либо ставить между ними символ недопустимый в идентификаторе
Эм. Как не пытался — не постиг тайного смысла. Какую проблему мы при этом решаем?
возможность использования лайка вместо регэкспа…
RLIKE позволяет реализовать вот такой подход:
Шаг      Значение поля  Суффикс
1            my_fild                   []
2            my_fild1                [1]
3            my_fild2                [2]

В один и тот же запрос, т.е и при наличии суффикса, и при его отсутствии.
Поясните, как Ваш метод позволит сделать то же самое?
field LIKE «xxx+%»

матчатся:
xxx+
xxx+1
xxx+22

не матчатся:
yyy+
xxx1+

плюсик с конца нужно убирать при выводе и добавлять при вводе
Ну и нафига козе баян? В смысле — маскарад с добавлением-удалением при каждой операции ввода-вывода, при условии что RLIKE не медленнее LIKE.
sqlite
Согласен, только еще стоит добавить, что
4.0 The LIKE optimization

Terms that are composed of the LIKE or GLOB operator can sometimes be used to constrain indices. There are many conditions on this use:

1. The left-hand side of the LIKE or GLOB operator must be the name of an indexed column.
2. The right-hand side of the LIKE or GLOB must be a string literal that does not begin with a wildcard character.
3. The ESCAPE clause cannot appear on the LIKE operator.
4. The build-in functions used to implement LIKE and GLOB must not have been overloaded using the sqlite3_create_function() API.
5. For the GLOB operator, the column must use the default BINARY collating sequence.
6. For the LIKE operator, if case_sensitive_like mode is enabled then the column must use the default BINARY collating sequence, or if case_sensitive_like mode is disabled then the column must use the built-in NOCASE collating sequence.
И далее по тексту.
это достаточно очевидные вещи…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории