Как использовать регулярные выражения в SQL - таблица разрешений - PullRequest
0 голосов
/ 13 октября 2018

У меня есть таблица разрешений, в которой есть URL-адреса.

, например:

id         permission

1         /Admin/Products/{product}/edit
2         /Admin/User/{id}

Теперь, когда пользователь переходит на эти URL-адреса, это значит, что он будет иметь разрешение:

/Admin/Products/56/edit
/Admin/Products/1/edit
/Admin/Products/12/edit

Теперь, как я могу использовать regex для этого сценария?

этот запрос должен вернуть результат:

SELECT * FROM `permissions` WHERE `url` LIKE '/Admin/Products/56/edit' 

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Вы можете использовать RLIKE:

SELECT * 
FROM `permissions` 
WHERE `url` RLIKE '/Admin/Products/[[:digit:]]+/edit';

db <> fiddle demo

0 голосов
/ 13 октября 2018

Почему бы просто не использовать like?

SELECT *
FROM `permissions`
WHERE `url` LIKE '/Admin/Products/%/edit'

Это вернет все продукты, для которых у пользователя есть разрешение на редактирование.

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