Мне нужно найти все результаты, когда название города совпадает с строкой OR, а широта и longitute – между заданными значениями. Мой индекс выглядит так:
sql_field_string = city sql_attr_float = lat sql_attr_float = lng
Есть ли способ использовать атрибуты в запросе? Или я могу использовать в значениях запроса из $ s-> setSelect ()? Я знаю, что я могу легко фильтровать результаты, используя $ s-> setFilterFloatRange (), но условие для меня в этом случае очень важно.
Это прекрасно работает:
$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');
но он дает мне строки, где находится город Амстердам и лат, lng между заданными значениями, но моя проблема в том, что мне не нужен фильтр (условие И), мне нужно ИЛИ.
Я также знаю, что могу использовать:
$s->setSelect('*, IF(lat<11,1,0) AS latitude');
но я верю, что могу использовать «широту» только как фильтр.