Php 如果字母或单词匹配,MySQL是否返回所有内容?

Php 如果字母或单词匹配,MySQL是否返回所有内容?,php,mysql,regex,Php,Mysql,Regex,这就是我现在正在使用的: SELECT * FROM title where title.posttitle LIKE '%$Search%' 如果有人搜索如何制作苹果派,它会返回正确的东西 如果有人搜索makeapplepiepie,出于某种原因,它不会返回任何结果 如果任何字母或单词与之匹配,我如何使其返回记录?如果posttitle正好包含$Search值,将生成响应。在我看来,精确搜索包含多个单词的字符串不是最佳实践。 我会将字符串拆分为单词(例如使用javascript) 然后我会搜

这就是我现在正在使用的:

SELECT * FROM title where title.posttitle LIKE '%$Search%'
如果有人搜索如何制作苹果派,它会返回正确的东西

如果有人搜索
makeapplepiepie
,出于某种原因,它不会返回任何结果


如果任何字母或单词与之匹配,我如何使其返回记录?

如果posttitle正好包含$Search值,将生成响应。在我看来,精确搜索包含多个单词的字符串不是最佳实践。 我会将字符串拆分为单词(例如使用javascript)

然后我会搜索是否包含这些词

SELECT * FROM title where (title.posttitle LIKE '%words[0]%') AND (title.posttitle LIKE '%words[1]%') ...etc

将一种格式的数据存储到数据库中也有助于搜索(全小写或大写)

@AvinashRaj搜索是输入的文本。您需要:a)提供一些示例结果以及查询。b) 提供一些您尝试过的操作。请在将列名和搜索条件转换为大写或小写后重试。如果
$search='How to make Apple Pie'
有效,则
$search='make Apple Pie'
也有效。因此,如果没有,那么$search必须包含其他内容。可能还有其他空格?如果您在浏览器中查看
$search
的内容,则只会显示一个空格。尝试输出您正在运行的精确查询,并直接在数据库上进行精确查询。您始终可以使用不区分大小写的排序规则并按输入的方式存储数据。
SELECT * FROM title where (title.posttitle LIKE '%words[0]%') AND (title.posttitle LIKE '%words[1]%') ...etc