【发布时间】:2010-08-26 09:09:50
【问题描述】:
我们在一个查询中有一个巨大的模式匹配(大约 12 个要检查的字符串)。 现在我必须在 MySQL 中做这个查询,但是来自 PostgreSQL 的查询似乎没有相同的语法。
来自 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 是去这里的方式吗?那我就得搞清楚对应的表达方式了。
【问题讨论】:
标签: mysql postgresql performance pattern-matching sql-like