gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:41 26 4
gpt4 key购买 nike

我有一个带有关键字列表的 mysql 表,例如:

id | keywords
---+--------------------------------
1 | apple, oranges, pears
2 | peaches, pineapples, tangerines

我正在尝试找出如何使用以下输入字符串查询此表:约翰喜欢吃苹果

有没有mysql查询类型可以用一句话查询一个字段并返回结果(在我的例子中,记录#1)?

最佳答案

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

例如,“John liked to eat apples”匹配正则表达式“apple|orange|pears”。

首先,要将“apple, oranges, pears”转换为正则表达式,将所有“,”替换为“|”使用 REPLACE .然后使用 RLIKE选择匹配的关键字条目:

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

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

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

而且,如果您有一个像“John liked to eat pineapples”这样的句子,它会匹配上面的两行(因为它确实包含“apple”)。然后您可以尝试向正则表达式添加单词边界(即 WHERE $sentence RLIKE '[[:<:]](apple|oranges|pears)[[:>:]]' ),但是当您有复数时,这会搞砸匹配('apples' 不会匹配 '[wordboundary]apple[wordboundary]')。

关于mysql查询将句子与字段中的关键字进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com