proč meziročně používáte HAVING ...vzhledem k tomu, že váš dotaz nepoužívá agregovanou funkci, takže můžete filtrovat pomocí where (ale kde nepoužívejte, musíte kód zopakovat) a pro výkon pomocí kde se vyhněte úplnému skenování pro opětovné vytvoření výsledek pro hodnocení
$query = $mysqli->query("SELECT postcode, (
6371 * acos (
cos ( radians('$latitude') )
* cos( radians( lat ) )
* cos( radians( lng ) - radians('$longitude') )
+ sin ( radians('$latitude') )
* sin( radians( lat ) )
)
) AS distance
FROM postcodetabel
WHERE 6371 * acos (
cos ( radians('$latitude') )
* cos( radians( lat ) )
* cos( radians( lng ) - radians('$longitude') )
+ sin ( radians('$latitude') )
* sin( radians( lat ) ) )< 12
ORDER BY distance ASC");