【发布时间】:2014-03-23 17:17:06
【问题描述】:
我有一张大桌子。我有全文索引:
名称(公司名称) Name_dba(经营业务的公司名称) phy_city(物理城市) phy_state(物理状态) 邮件城市 邮件状态
我允许用户简单地输入公司名称、城市等进行搜索。我的代码采用术语 sing $term 并删除单词之间的任何空格并将其替换为“+”。然后我执行以下查询:
SELECT SQL_CALC_FOUND_ROWS * FROM fmcsa_census1
WHERE MATCH(dot_num, name, name_dba, iccdocket1, icc1,phy_st, phy_city, mail_city, mail_st) AGAINST (('$term') IN BOOLEAN MODE)
这在搜索城市、州时可以正常工作,但在公司名称上永远不会正确匹配。即使我输入的公司名称与我在数据库中的名称完全相同,它也不会在结果中返回或返回。两个名称字段都是 varchar(120)。
人们很可能会按名称搜索任何建议。
谢谢!
【问题讨论】:
-
你试过在mysql控制台还是只在php?
-
你确定用 + 替换空格不是问题吗?