2016-09-27 64 views
4

我试图做类似如何写一个正则表达式前瞻/回顾后在MySQL

SELECT * FROM table WHERE column REGEXP (abc)(?=def) 

,我得到了错误

Got error 'repetition-operator operand invalid' from regexp 

由于“?” - >请参见#1139 - Got error 'repetition-operator operand invalid' from regexp

在mysql中有没有等价物,我在https://dev.mysql.com/doc/refman/5.7/en/regexp.html中看不到?

或者可能是我还不知道的另一个mysql函数?

+0

啊,老鼠。我认为重复的目标与官方文档的实际链接解释了这些功能在mySQL中不存在。它链接到一般的正则表达式参考,但你也链接到。抱歉。无论哪种方式,底线似乎是功能不存在 –

+0

@Pekka웃你可以repoen? –

+0

@Tim我不确定,我从来没有尝试过。你有与重复目标中的答案不同的答案吗? –

回答

2

的MySQL REGEXP不支持向前看符号,但你可以尝试使用这样的事情来达到同样的逻辑:

WHERE column LIKE '%abc%' AND 
     SUBSTRING(column, INSTR(column, 'abc') + 3, 3) <> 'def' 
+0

关闭。但未能抓住“abcdef xyz abc”。但我想这是一个模棱两可的案例。纪尧姆是否想要这一行? –

+0

wouw,我没想到我的问题会很快回答。 我花了一些时间来理解你在这里想做什么(不知道函数'SUBSTRING',也没有'INSTR'),这是一个我不可能想到的有趣技巧。尽管如此,我现在无法测试它,我希望它会被其他人使用... –

+0

不得不今天做类似的事情,并想起我问的问题:) 嗯,它的工作原理^^ –