I have a table with several routes which has severeal points defined by lattitude and longitude.
table name: route_path
 |id_route  |id_point| lat        | lng       |
 |hhVFlBFA0M|     328| 48.90008   | 18.0233   |
 |hhVFlBFA0M|     329| 48.90003   | 18.0268   |
 |hhVFlBFA0M|     330| 48.89997   | 18.02856  |
 |hhVFlBFA0M|     331| 48.89991   | 18.02857  |
 |hhVFlBFA0M|     332| 48.89986   | 18.02862  |
 |hhVFlBFA0M|     333| 48.89982   | 18.02869  |
 |hhVFlBFA0M|     334| 48.89981   | 18.02878  |
 |hhVFlBFA0M|     335| 48.89981   | 18.02886  |
 |hhVFlBFA0M|     336| 48.89956   | 18.02925  |
 |hhVFlBFA0M|     337| 48.89914   | 18.02972  |
 |hhVFlBFA0M|     338| 48.8986177 | 18.0302365|
 |3toCyDGVV2|       1| 48.134166  | 17.1051961|
 |3toCyDGVV2|       2| 48.13417   | 17.1052   |
 |3toCyDGVV2|       3| 48.13344   | 17.10559  |
 |3toCyDGVV2|       4| 48.13298   | 17.10609  |
 |3toCyDGVV2|       5| 48.13221   | 17.10699  |
 |3toCyDGVV2|       6| 48.132     | 17.10806  |
 |3toCyDGVV2|       7| 48.13193   | 17.10997  |
 |3toCyDGVV2|       8| 48.13203   | 17.1109   |  
 |3toCyDGVV2|       9| 48.132     | 17.1 112  |
 |3toCyDGVV2|      10| 48.13181512| 17.1112   |  
 |3toCyDGVV2|      11| 48.13181   | 17.10806  |
 |3toCyDGVV2|      12| 48.13181   | 17.10806  |
 |3toCyDGVV2|      13| 48.13197   | 17.10399  |
 |3toCyDGVV2|      14| 48.13199   | 17.10352  |
 |3toCyDGVV2|      15| 48.1323    | 17.10328  |
So far I can do it to select all rows from one route which are within tolerated distance and then loop to find minimal distance point.
SELECT * FROM route_path 
WHERE 
(((lat < $start_lat + $tolerance) AND 
(lat > $start_lat - $tolerance)) AND 
((lng < $start_lng + $tolerance) AND 
(lng > $start_lng - $tolerance)))
So this will results in several rows (id_points) of each route and then I need to loop with while to find minimal.
How can I found out select one row (one id_point) from each route with minimal distance from start lat and lng considering this distance is not more then some value.
Any suggestion for sql request without looping.
Basically I need something like, but of course it is not possible to use MIN after WHERE
SELECT * FROM route_path WHERE **MIN(**(((lat < $start_lat + $tolerance) AND (lat > $start_lat - $tolerance)) AND ((lng < $start_lng + $tolerance) AND (lng > $start_lng - $tolerance)))**)**
 
     
     
    