2
我们在查询中有一个巨大的模式匹配(大约12个字符串检查)。 现在,我必须在MySQL中执行此查询,但似乎来自PostgreSQL的查询具有不同的语法。什么是在MySQL中进行模式匹配的有效方法?
和PostgreSQL:
SELECT value
FROM ...
WHERE ...
AND `value` !~* '.*(text|text2|text3|text4|text5).*';
如何在一个有效的方式做到这一点在MySQL?我知道,这可能根本没有效率。什么是最有效的方法来做到这一点?
这是卓有成效的,但可能做到这一点可能最糟糕的查询:
SELECT `value`
FROM ...
WHERE ...
AND NOT (
`value` LIKE '%text%'
OR `value` LIKE '%text2%'
OR `value` LIKE '%text3%'
OR `value` LIKE '%text4%'
OR `value` LIKE '%text5%');
是REGEXP去这里的路?然后我必须找出相应的表达式。
在这种情况下,NOT(LIKE或LIKE或LIKE ...)比NOT RLIKE快50%。 根据支票的数量,这可能会有所不同。 感谢您的所有额外信息! – Smamatti 2010-08-26 12:14:22