Mysql:Hot可以将存储的Regex列值与传递的Query参数进行匹配。
我有一个名为user_access的表
user_access 1. id 2. userId 3. 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/[^/?#]
我想检查一下,如果用户1正在访问url service / v1 / users / 1,那么他在表中有正确的url regex条目。
在mysql中我知道我们可以匹配正则表达式
select 'service/v1/users/1' regexp ' service/v1/users/[^/?#]+';
如果我知道user_access ID,则可以使用
完成
select 'service/v1/users/1' regexp (select url from user_access where id=1);
问题是我只知道用户ID(1),为此我们在user_access表中有三个条目。
如果我运行查询
select 'service/v1/users/1' regexp (select url from user_access where userId=1);
返回错误代码1242.子查询返回多行。
答案 0 :(得分:0)
使用此SQL:select * from user_access where 'service/v1/users/1' regexp url = 1