MySQL字符串模式匹配 - 类似的替代品

时间:2012-01-24 18:20:19

标签: mysql sql regex full-text-search pattern-matching

MySQL like子句允许通配符搜索,例如'%keyword%',其中关键字夹在列值中。

对于模式匹配,其中关键字包含列值的一部分,而%keyword%不起作用时,我们可以使用INSTR函数进行搜索。

示例:

Column="Apple"
$keyword = "An Apple a day"

在此,我们无法Column like '%$keyword%'进行匹配,但(INSTR('$Keyword', Column)>0会进行匹配。

有什么替代方案(正则表达式?,全文搜索?,lucene?)除了INSTR之外还有其他模式匹配这样的情况(例子?)?

更新

Column = "Golden Apple"
$keyword = "An Apple a day"

即使是这样的样本,我也希望能够将$ keyword与列匹配,因为它们有一个共同的术语“Apple”。

3 个答案:

答案 0 :(得分:1)

我不清楚您想要做什么,但请尝试使用此链接查找有关pattern matching in mysql的帮助

您是在编写程序,触发器还是只是选择?

答案 1 :(得分:1)

在这种情况下,您仍然可以使用LIKE

'%$keyword%' LIKE CONCAT('%', Column, '%') 

或正则表达式:

'%$keyword%' REGEXP Column

答案 2 :(得分:0)

还要考虑SOUNDEXNatural Language(使用全文搜索和相关性)搜索。