Как использовать регулярные выражения в запросах активных записей? - PullRequest
2 голосов
/ 14 марта 2019

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

Я пытался использовать эти запросы, но они не работают:

User.where.not("spec like ?", "%\d")
User.where.not("spec ~ ?", "%\d")

Как я могу найти эти данные?

1 Ответ

4 голосов
/ 14 марта 2019

Использование SIMILAR TO с %[0-9] рисунком:

User.where.not("spec SIMILAR TO ?", "%[0-9]")

Оператор SIMILAR TO аналогичен регулярному выражению, но позволяет использовать подстановочные знаки, как с LIKE и некоторыми «легкими» конструкциями регулярных выражений, например, выражения в скобках, такие как [0-9] или [A-Z]. Шаблон должен соответствовать всему вводу как с LIKE.

Таким образом, шаблон %[0-9] будет соответствовать любым строкам, которые начинаются с любого текста (подстановочный знак % делает это) и заканчиваются цифрой ASCII (из-за [0-9] в конце).

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