SQL и SQLite: как искать поле, начинающееся с числа - PullRequest
2 голосов
/ 17 апреля 2011

У меня есть модель SQL, в которой я хочу искать все слова, начинающиеся с цифры.Я не могу использовать regexp, так как он не поддерживается в SQLite, как я могу обмануть его, чтобы получить те же результаты?

Ответы [ 2 ]

1 голос
/ 17 апреля 2011

вы можете сделать это взломать:

@results = YourModel.where("(your_field + 0) > 0")

Он вернет все объекты из YourModel с your_field, начиная с числа, которое больше нуля (а не нуля)

Или чуть более нативное решение:

@results = YourModel.where("substr(your_field,1,1) IN (?)", (0..9).to_a)

Это означает, что первый символ вашего поля должен быть одним из этих чисел : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

0 голосов
/ 17 апреля 2011

Вы можете использовать glob в sqlite.

Model.filter("field glob ?", '[0-9]*')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...