我有一个类似的声明,如下所示:
AND ( CONCAT( arc_property_res.STREET_NUM, ' ', arc_property_res.STREET_NAME ) LIKE '%{$address}%'
NUM
和NAME
在不同的列中。目前,如果我有一个输入字段并输入,则此查询有效:000 Street Dr
但是一旦我尝试这样做:000 Street Drive
我得到 0 个结果。同样的事情也发生在 Rd、Blvd、Pk 和其他一些地方。
我试过只使用一个通配符%
,但仍然没有找到东西。任何帮助或想法表示赞赏。
更新
我将表格转换为使用 MyISAM,以便可以使用全文搜索。所以现在所有匹配的查询都有效,即:Dr、Drive、Rd、Road 等......
我的查询现在看起来像这样:
AND ( MATCH(arc_property_res.STREET_NUM, arc_property_res.STREET_NAME) AGAINST('{$address}')
在某些情况下,我输入的地址不会首先出现。注意正确的列表在那里,它不是第一个。
例子:
有什么想法吗?