mysql - MySQL 使用多行的 REGEXP
问题描述
我有一个包含两个表的数据库。第一个表有一列包含正则表达式(大约有 200 行)。第二个表有多行,我想从第二个表中获取与第一个表中的所有正则表达式匹配的所有行。
例如,如果第一个表有:
^google.com/orp
^amazon.com/ssw
^stack/ik9
第二张桌子有
stack/ik9282
msifks0
amazon.com/ssw9a
结果应该是
stack/ik9282
amazon.com/ssw9a
我尝试使用GROUP_CONCAT
并从我的第一个表中获取正则表达式 as ^google.com/orp|^amazon.com/ssw|^stack/ik9
,但GROUP_CONCAT
最大长度为 1024,我需要更多。
解决方案
SELECT DISTINCT strings.value
FROM strings
JOIN patterns ON strings.value REGEXP patterns.pattern;
GROUP_CONCAT
最大长度为 1024
您可以调整group_concat_max_len
变量设置。
推荐阅读
- node.js - 在不接受请求正文中以快递形式发布请求
- reactjs - TypeError: state.auth is undefined error because I added redux reducers
- django - Django 测试不使用主键
- javascript - 蓝图 DateInput 组件未正确呈现
- html - 将 flexbox 容器的宽度限制为视口宽度,无论 flex 项的宽度有多大
- java - 是否可以在不使用任何导入的情况下打开文件?
- chatbot - 如何使用实体查询数据库?
- r - dplyr 以编程方式过滤多个逻辑列的最佳实践
- javascript - 在 Laravel 8 项目中找不到 Javascript
- excel - 将 TXT 转换为 CSV