Таблетка для памяти:
Есть служба, компы в которой могут иметь имена от cnt30150 до cnt30149z.
Шаблон для тех, кто понимает:
При этом только 3 цифры после cnt30 есть собственно номер компа, а последний знак - дополнительный индекс, который может повторяться у разных компов.
Для отбора компов вышеупомянутой службы из базы OCS Inventory используем такое регулярное выражение:
То есть, выбираем компы, имена которых начинаются с cnt301, после чего идет либо тройка, за которой должна следовать цифра от 5 до 9, либо четверка, после которой должна быть цифра от 0 до 9, и заканчивается это одним любым символом.
Дополнительно стоит заметить, что для rlike (он же - regexp) шаблон указывается в двойных кавычках, как это делается для имени поля, а не в апострофах, как обычная строка.
Конечно, можно было задать этот же диапазон как:
что тоже правильно, но ведь это не так красиво, а?
Есть служба, компы в которой могут иметь имена от cnt30150 до cnt30149z.
Шаблон для тех, кто понимает:
cnt30[0-9]{3}[0-9a-z]{1}
При этом только 3 цифры после cnt30 есть собственно номер компа, а последний знак - дополнительный индекс, который может повторяться у разных компов.
Для отбора компов вышеупомянутой службы из базы OCS Inventory используем такое регулярное выражение:
select id,name from hardware where name rlike "cnt301(3[5-9]{1}|4[0-9]{1})."
То есть, выбираем компы, имена которых начинаются с cnt301, после чего идет либо тройка, за которой должна следовать цифра от 5 до 9, либо четверка, после которой должна быть цифра от 0 до 9, и заканчивается это одним любым символом.
Дополнительно стоит заметить, что для rlike (он же - regexp) шаблон указывается в двойных кавычках, как это делается для имени поля, а не в апострофах, как обычная строка.
Конечно, можно было задать этот же диапазон как:
select id,name from hardware where name >= 'cnt301350' and name <= 'cnt30149z'
что тоже правильно, но ведь это не так красиво, а?