在术语不起作用的情况下使用MYSQL搜索的最佳方法是什么

在术语不起作用的情况下使用MYSQL搜索的最佳方法是什么,mysql,Mysql,在数据库中搜索短语(如“杏仁八角饼干”)并返回结果的最佳方法是什么 如果我 使用“杏仁饼干”这个短语,不会像预期的那样返回任何东西。但是如果我搜索“八角饼干”,上面的结果就会返回 我也试过了 SELECT * FROM recipes WHERE name LIKE '%".$query."%' OR name LIKE '".$query."%' OR name LIKE '%".$query."' 同样的失败结果 使用匹配返回所有包含“Almond”的内容,而所有包含“Cooki

在数据库中搜索短语(如“杏仁八角饼干”)并返回结果的最佳方法是什么

如果我

使用“杏仁饼干”这个短语,不会像预期的那样返回任何东西。但是如果我搜索“八角饼干”,上面的结果就会返回

我也试过了

SELECT * 
FROM recipes 
WHERE name LIKE '%".$query."%' 
OR name LIKE '".$query."%' 
OR name LIKE '%".$query."' 
同样的失败结果


使用
匹配
返回所有包含“Almond”的内容,而所有包含“Cookie”的内容也不是一个好结果。返回的结果中是否有令人满意的中间结果?

您可以尝试使用
REPLACE
。像这样的方法应该会奏效:

SELECT * 
FROM recipes 
WHERE NAME LIKE REPLACE(' ".$query." ',' ','%');
请注意,我特意在
$query.
之间添加空格,以确保替换操作将使用通配符填充术语。在上述示例中:

如果
$query
='almond cookies',则
替换(“$query.”,“,”,“,%”)
将成为
%almond%cookies%


您可以在这里测试小提琴:

请显示真正的代码,因为这显然是为PHP或其他东西编写的。你所展示的显然是语法错误??以上结果是否返回??以上是什么结果。真正的代码是:如果搜索“杏仁饼干”,为什么MySQL应该返回一行包含“杏仁八角饼干”?该行不包含搜索术语这将搜索$query中存储的短语是否出现。例如,如果$query=“Almond Cookie”标题为“Almond Anise Cookie”,则它不应返回任何内容。如果您想单独搜索每个单词,应该分解字符串并使用或修饰符进行搜索。tcadidot0工作正常,感谢您的帮助!
SELECT * 
FROM recipes 
WHERE NAME LIKE REPLACE(' ".$query." ',' ','%');