如果我有一个包含正则表达式模式的列的数据库表,是否可以返回字符串匹配的行(不依次系统地测试每一行)?
例如,像这样的表:
RowID RegExPattern
1 foo\.$
2 bar\.$
3 baz\.$
4 (foo|bar)\.$
Run Code Online (Sandbox Code Playgroud)
和这样的输入字符串:
foo.php
Run Code Online (Sandbox Code Playgroud)
将返回RowIDs 1和4
如果我有一个包含正则表达式模式的列的数据库表,是否可以返回字符串匹配的行[...]?
是的,这是可能的.
SELECT RowID
FROM yourtable
WHERE 'foo.php' REGEXP RegExPattern
Run Code Online (Sandbox Code Playgroud)
请注意,您的正则表达式将不匹配.如果省略,$那么他们会.
看到它在线工作:sqlfiddle
(没有依次系统地测试每一行)
呃......不.您需要测试每一行.