Вот моя процедура ..
Как я могу получить добавить еще одно условие, которое должно удовлетворять, что запись updated_time в таблице driver_latlong должна быть менее 1 минуты?
Вот моя процедура
BEGIN
SET @sql = CONCAT(
'SELECT (DriverLocation.updated_at - NOW()) as Diff, DriverLocation.updated_at, NOW(), DriverLocation.AutoId, DriverLocation.DriverId,
@dist:= ( 6371 * acos( cos( radians(',lat,') ) * cos( radians( DriverLocation.Lat ) ) * cos( radians( DriverLocation.Long ) - radians(',lng,') ) + sin( radians(',lat,') ) * sin( radians( DriverLocation.Lat ) ) ) ) AS distance
FROM driver_latlong DriverLocation LEFT JOIN driver_details DriverDetail on DriverDetail.DriverId = DriverLocation.DriverId where DriverLocation.DriverId NOT IN (',Exclude,') AND DriverDetail.IsActive=',1,' AND DriverDetail.IsOnline=',1,' having distance <=50000.0 ORDER BY distance ASC LIMIT 0 , 1;');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
Если вы просто указываете время получения MySQL, т.е. СЕЙЧАС()
Вы получите записи с разницей от 0 до 60 секунд (1 минута)
Затем вы должны добавить это к вашей процедуре
AND (DriverLocation.updated_at - NOW() BETWEEN 0 AND 60 )
Других решений пока нет …