【发布时间】:2013-08-30 22:16:26
【问题描述】:
以下代码适用于搜索,但如果您在搜索框中输入的文本过多,则它不起作用。
例如,如果您搜索短语“英文文本”,您会收到许多结果。但是,如果您搜索短语“英语语言中的文本”,它不会提供任何结果,因为“语言”一词不在它正在搜索的字段中。
换句话说,查询是在文本中搜索短语,而不仅仅是它的任何部分。
我正在使用这个查询:
$sqlcommand = "SELECT id,page_title,url,search_description,text1,text2,text3
FROM pages
WHERE concat(text1, ':', text2, ':', text3) LIKE '%$searchquery%'";
我正在寻找一些建议,但我猜LIKE '%$searchquery%' 部分是问题所在。
干杯
理查德
【问题讨论】:
-
听起来您真的想要全文搜索,可能使用布尔选项。查看文档以获取更多信息 (dev.mysql.com/doc/refman/5.5/en/fulltext-search.html)。
-
请编辑您的问题以阐明正在搜索的内容和正在搜索的内容。 “在搜索中搜索任何单词的搜索”非常不透明。如果您“输入太多文本”它不起作用 - 在哪里输入文本?在您的数据库字段或
$searchquery字符串中? -
问题已编辑,希望它有助于澄清我的问题。理查德
-
您能否提供相关的示例数据、搜索字符串和所需的查询输出?如果您按照 ...any part of... 查询字符串所述进行搜索,则可以使用
in或/和text...之类的词从表中获取所有行跨度>