Это не отвечает на мой вопрос.
Я нашел такой запрос для поиска объектов по кругу.
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 сервером я не могу.