当我输入单词(ex:freshers)时,我想要更新鲜和更新的记录,目前我只获得新手记录。我的代码是这样的:
$search='freshers';
$qry=mysql_query("select count(*) from jobs where job_title like '%$search%' or MATCH(job_title)
AGAINST('$search' IN BOOLEAN MODE)");
当搜索字词新手时,我的数字为1200.当搜索字词更新鲜时,我的数字再次计为2000.
当我进入新鲜或新鲜时,如何得到几乎相同的数量。
答案 0 :(得分:0)
您无法从任何MySQL技术获得与单数或复数搜索项完全相同的匹配记录数。
MySQL没有聪明才知道freshers
是fresher
的复数形式,或children
是child
的复数形式。如果您想使用MySQL执行此操作,则必须使用您想要复数形式的单词形式开始搜索。
MySQL也不知道mice
是mouse
的复数形式。
如果您需要自动复数/单数功能,您可能需要调查Lucene或其他一些自然语言搜索技术。您寻求的能力的名称是“阻止。”
但是你可以使用带有尾随星号的术语进行FULLTEXT搜索。例如,'fresher*'
匹配fresher
,freshers
,甚至fresherola
。这将把搜索从单数扩展到复数。它反过来不会起作用。它
select count(*)
from jobs
where MATCH(job_title) AGAINST('fresher*' IN BOOLEAN MODE)
布尔模式搜索术语还有一些其他修改字符。他们在这里提到:
http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
专业提示:column LIKE '%searchterm%'
可能是MySQL提供搜索专栏的最慢方式。保证扫描整个表格。
专业提示:FULLTEXT搜索本质上有点模糊。期待从中获得清晰的记录可能是一条混乱的道路。
答案 1 :(得分:-1)
try this
$search='fresher';
$qry=mysql_query("select count(*) from jobs where job_title like '$search%'