У меня есть одно поле map
, которое содержит как широту, так и долготу, разделенные точкой с запятой. То, что мне нужно сделать, это разделить эти два, а затем выполнить вычисления с другой заданной широты и долготы, чтобы вычислить разницу.Повторное использование нескольких переменных в предложении WHERE
Обратите внимание, пожалуйста, игнорируйте ... как я разделил поле строки карты, b.id = a.id и вычисления, которые я делаю на lat и long. Здесь они не важны.
WHERE
/* Here's where I get the values for lat and long from the map field */
(
SELECT
/* lat from map field */ as lat,
/* long from map field */ as long
FROM some_table AS b
WHERE b.id = a.id AND b.key = 'map'
)
/* Here's where I use them to do some calculations... */
lat <= (" . ($lat + $radius/40075) . ")
AND lat >= (" . ($lat - $radius/40075) . ")
AND long <= (" . ($long + $radius/40075) . ")
AND long >= (" . ($long - $radius/40075) . ")
Я знаю, что это не будет работать, но я хотел бы знать, как это сделать, так что я не повторно выбор значения карты каждый раз, когда я использую lat
и long
.
на втором взгляде. Я думаю, что неправильно понял ваш вопрос. Вы посмотрели: http://dev.mysql.com/doc/refman/5.0/en/user-variables.html –
Я не понимаю ваш вопрос. Является ли 'lat' в SQL другой переменной, чем ваша переменная PHP' $ lat'? – staticsan