您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

mysql查询以将句子与字段中的关键字匹配

mysql查询以将句子与字段中的关键字匹配

一种实现方法是转换apple, oranges, pearsapple|oranges|pears并使用RLIKE(即正则表达式)与之匹配。

例如,“约翰喜欢吃苹果”与正则表达式“苹果|橙色|豌豆”匹配。

首先,要将“苹果,橘子,梨”转换为正则表达式,请将所有“,”替换为“ |” 使用REPLACE。然后使用RLIKE来选择匹配的关键字条目:

SELECT * 
FROM keywords_table
WHERE 'John liked to eat apples' RLIKE REPLACE(keywords,', ','|');

但是,这确实取决于您的逗号分隔是否一致(即,如果有一行看起来像apples,oranges这样,因为REPLACE替换逗号后接一个空格(根据您的示例行),这行将不起作用。

我也不认为它会很好地扩展。

而且,如果您有一个类似“约翰喜欢吃菠萝”的句子,它将与上面的两行都匹配(因为它的确包含“苹果”)。然后,您可以尝试在正则表达式中添加单词边界(即WHERE $sentence RLIKE '[[:<:]](apple|oranges|pears)[[:>:]]'),但是当您使用复数形式时(“ apples”将不与“ [wordboundary] apple [wordboundary]”匹配),这将使匹配变得更糟。

MySQL 2022/1/1 18:48:42 有295人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶