gpt4 book ai didi

php - Mysql查询LIKE搜索并使用带符号的字符串

转载 作者:行者123 更新时间:2023-11-29 04:53:24 24 4
gpt4 key购买 nike

我的问题是在搜索查询中使用了符号。我希望用户能够毫无问题地使用符号,但 mysql 中的 LIKE 函数似乎不是解决方案,因此我需要一些帮助。

示例:如果有人搜索“Blue's car”并且“Blues car”在数据库中,则此查询将返回 0 个结果。或者反之亦然,如果有人搜索“Blues car”并且“Blue's car”在数据库中,则此查询也将返回 0 个结果。

这是我目前使用的示例:

("SELECT Title FROM MyData WHERE Title LIKE '%".$search."%'")

还有其他方法可以提供更好的搜索结果吗?

谢谢。

最佳答案

搜索字段

你可以有一个额外的“搜索”字段,它存储没有标点符号的标题,当用户输入搜索字符串时,在应用查询之前删除标点符号。您还可以删除前导“The”。

我会进一步解释上面的内容。

在数据库中你有这样一条记录。 SearchTitle 是去除了前导“The”和标点符号的标题:

Title                  SearchTitle
------------------------------------------
The Blue's Clues Blues Clues

在这里,用户知道确切的标题并输入以下搜索字符串:

The Blue's Clues

您删除了前导“The”和标点符号,得到以下内容:

Blues Clues

你的查询看起来像这样

SELECT Title FROM MyData WHERE SearchTitle LIKE '%Blues Clues%'

在这里,用户不知道确切的标题并输入以下内容:

Blues Clues

去除前导的“The”和标点符号,仍然会产生相同的结果:

Blues Clues

您的查询保持不变,并匹配搜索字段中的内容:

SELECT Title FROM MyData WHERE SearchTitle LIKE '%Blues Clues%'

这可以进一步改进。关键是对搜索字符串应用与存储在搜索字段中的内容相同的规则。例如,将“two”和“II”转换为“2”等,去掉“ON”和“AND”等附加词。

全文搜索

MySQL 全文搜索使用“Natural Language”搜索。我不确定这是否能解决您的问题,但它可能值得研究。

关于php - Mysql查询LIKE搜索并使用带符号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132382/

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