SELECT link_id, a.lat, a.lon, a.map_name, townsearch, sitemap_small,st_distance_sphere(st_srid(point('-114.7376493','36.0166155'),4326),st_srid(point(a.lon,a.lat),4326)) / 1000 AS distance FROM -- sb.search_lat_lon a locales a WHERE -- ABS(36.0166155 - a.lat) < 2 AND ABS(-114.7376493 - a.lon) < 3 ST_Intersects(a.latlon, ST_BUFFER(st_srid(POINT(-114.7376493, 36.0166155),4326),100*1000)) /* distance 100*/ HAVING sitemap_small =1 AND distance < 15 OR townsearch =1 AND sitemap_small = 0 ORDER BY sitemap_small DESC, townsearch DESC, distance ASC LIMIT 1