MYSQL выберите по кругу местоположение и имея только определенные результаты - PullRequest
0 голосов
/ 28 февраля 2020

Это не отвечает на мой вопрос.

Я нашел такой запрос для поиска объектов по кругу.

SELECT id, ST_X(location),ST_Y(location), state
FROM (
SELECT id, location, state, r,
units * DEGREES( ACOS(
COS(RADIANS(latpoint))
* COS(RADIANS(ST_X(location))) 
* COS(RADIANS(longpoint) - RADIANS(ST_Y(location)))
+ SIN(RADIANS(latpoint))
* SIN(RADIANS(ST_X(location))))) AS distance
FROM fountains
JOIN (
SELECT 13.1  AS latpoint, 2 AS longpoint,
 1000  AS r, 111.045 AS units 
) AS p ON (1=1)
WHERE MbrContains(ST_GeomFromText(
CONCAT('LINESTRING(',
latpoint-(r/units),' ',
longpoint-(r /(units* COS(RADIANS(latpoint)))),
',',
latpoint+(r/units) ,' ', 
longpoint+(r /(units * COS(RADIANS(latpoint)))),
')')),  location)
) AS d
WHERe d.distance <= d.r HAVING d.state="faulty" 
ORDER BY d.distance ASC;

Это результат в моей базе данных:

id  ST_X(location)  ST_Y(location)  state
2   13.1            2.1             usable
1   13              2               faulty
3   13.2            2.2             usable
5   13.3            2.3             usable
6   12.9            2.3             usable

Как добавить предложение, чтобы добавить условие к результату? Например, если я хочу иметь только записи с состоянием столбца == "usable"?

Я также вижу, что если я go на localhost: xxxx и введу в мою базу данных, с предложением where или имея пункт, я могу это сделать, но с моим GO lang сервером я не могу.

1 Ответ

0 голосов
/ 28 февраля 2020

НЕПРАВИЛЬНЫЙ СИНТАКС. Благодаря клубника

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...