我在为我的实时搜索引擎创建查询时遇到问题。
表的结构如下:
street | zipcode | city
col1.: streetname | 12345 | london
col1.: otherstreet | 12345 | london
我的问题如下:
当我要搜索时,12345 london streetname
我会得到非常简单的查询的错误结果。当我回显查询时,我得到以下结果:
`zipcode` LIKE '12345%' AND `city` LIKE 'london%' OR `street` LIKE 'london%' AND `city` LIKE 'streetname%' OR `street` LIKE 'streetname%'
我使用以下方法获取结果:
$where = ...
$query = $db->query("SELECT * FROM table WHERE $where");
$result = $query->num_rows;
if ($result !== 0 ){
echo $result;
while ($row = $query->fetch_assoc()) {
echo
$row["zipcode"],
' ',
$row["city"]';
}
}
对此感到好奇的是,当我将输入顺序更改为:
streetname 12345 london
然后我得到:
`city` LIKE 'streetname%' OR `street` LIKE 'streetname%' AND `city` LIKE 'london%' OR `street` LIKE 'london%' AND `zipcode` LIKE '12345%'
似乎最后一个AND
条件也有问题。当我将在该示例中更改邮政编码时:
streetname london 12345
没关系,即使邮政编码错误,我也会得到这个结果。
因此,如果有人可以给我提示来解决这个问题,我真的很感激。
非常感谢。