我需要查找城市名称与字符串匹配的所有结果或纬度和长度在给定值之间。我的索引看起来像这样:
sql_field_string = city
sql_attr_float = lat
sql_attr_float = lng
有没有办法在查询中使用属性?或者我可以在$ s-> setSelect()的查询值中使用?我知道我可以使用$ s-> setFilterFloatRange()轻松过滤结果,但在这种情况下OR条件对我来说是必不可少的。
这很好用:
$s->SetFilterFloatRange('lat', $_GET['lat'] - $_GET['distance'], $_GET['lat'] + $_GET['distance']);
$s->SetFilterFloatRange('lng', $_GET['lng'] - $_GET['distance'], $_GET['lng'] + $_GET['distance']);
$s->Query('@city Amsterdam');
但它给了我一行,其中city是Amsterdam和lat,lng在给定值之间,但我的问题是我不需要过滤器(AND条件)我需要OR。
我也知道我可以使用:
$s->setSelect('*, IF(lat<11,1,0) AS latitude');
但我相信我只能将'纬度'用作过滤器。