Java Mysql:如何将存储的正则表达式列值与传递的查询参数匹配

Java Mysql:如何将存储的正则表达式列值与传递的查询参数匹配,java,mysql,Java,Mysql,Mysql:Hot将存储的正则表达式列值与传递的查询参数匹配 我有一个名为user\u access的表 user_access 1. id 2. userId 3. url 它包含如下数据: 我想检查一下,若用户1正在访问url服务/v1/users/1,那个么他在表中有有效的url正则表达式条目 在mysql中,我知道我们可以匹配正则表达式 如果我知道用户访问ID,那么可以使用 问题是我只知道用户id1,对于它,在用户访问表中有三个条目。 如果我运行查询 返回错

Mysql:Hot将存储的正则表达式列值与传递的查询参数匹配

我有一个名为user\u access的表

user_access 1. id 2. userId 3. url 它包含如下数据:

我想检查一下,若用户1正在访问url服务/v1/users/1,那个么他在表中有有效的url正则表达式条目

在mysql中,我知道我们可以匹配正则表达式

如果我知道用户访问ID,那么可以使用

问题是我只知道用户id1,对于它,在用户访问表中有三个条目。 如果我运行查询


返回错误代码1242。子查询返回多行。

使用此SQL:select*from user\u access,其中'service/v1/users/1'regexp url=1

可以发布查询吗?并发布预期的输出。@Ravi我想进行这种查询。选择*from user_access,其中'service/v1/users/1'regexp url==1您应该共享预期的数据。你想要的可能不可行或不正确。选择*from user_access,其中'service/v1/users/1'regexp url==1我的目标是检查数据库中是否存在给定的url。我已经在数据库中存储了url正则表达式。因为url是动态的,并且将根据数据进行更改。如果我们使用url service/v1/users/{userId},则每个用户的{userId}将被实际的userId替换。我无法将所有用户的url存储在数据库中,因此我已将其存储为服务/v1/users/[^/?]+”表示任何用户。现在我有了像service/v1/users/1这样的url,我想检查它是否与我的db存储的正则表达式url匹配。谢谢你的回复 id userId url 1 1 service/v1/users/[^/?#]+ 2 1 service/v1/users/[^/?#]+/notes 3 1 service/v1/users/[^/?#]+/notes/[^/?#] 4 2 service/v1/users/[^/?#]+/notes 5 2 service/v1/users/[^/?#]+/notes/[^/?#] select 'service/v1/users/1' regexp ' service/v1/users/[^/?#]+'; select 'service/v1/users/1' regexp (select url from user_access where id=1); select 'service/v1/users/1' regexp (select url from user_access where userId=1);