我有一个非常有趣的任务,我不知道如何实现。
我需要在数据库表中存储许多正则表达式,并且需要能够找到它们与给定字符串匹配的内容。
例如:
id | regexp
---|-------------
1 | ^hello world$
2 | ^I have [0-9] flowers&
3 | ^some other regexp$
4 | ^and another (one|regexp)$
我需要找到哪些表达式匹配字符串“我有5朵花”。当然我可以 SELECT * FROM table 并循环遍历在PHP中逐个匹配它们的表达式,但这对于服务器来说是非常糟糕的。
我可以以某种方式索引此表或使用特殊的SQL查询来处理此任务吗?
我会感激任何答案。谢谢。
答案 0 :(得分:12)
select * from table where $your_string RLIKE regexp
答案 1 :(得分:2)
SELECT * FROM table WHERE 'some stuff' REGEXP `regexp`;
不幸的是,没有办法使用带有regexp的查询的索引。