Mysql Got error 'invalid character range' from regexp

Apostol

Новичок
PHP:
select count(`id`) as `c` from `table` where `col` regexp  '(\[123-123-(1|2)\])' and `id`='8'
С php ошибка не связана, в mysql не правильно регулярки исполняются. В этом примере mysql расценивает тире в квадратных скобках как диапазон, и не помагает ни экранирование, ничего.
Можно ли как то по другому выполнить запрос, мне надо, что бы третья цифра была или 1 или 2, первые две я знаю...
В ячейке могут быть например такое значение "[123-123-3][21-12-1][2-23-1][123-123-1][11-23-2]"
 

Вурдалак

Продвинутый новичок
Ты сделал экранирование квадратных скобок на уровне регулярного выражения, но забыл сделать экранирование бекслешей на уровне строкового литерала для SQL-запроса.

Если смотреть шире, то тебе скорее всего стоит завести отдельный столбец для этого признака и делать выборку как белые люди.
 
Сверху