koordinaten - suche den nächstgelegenen Wert

lan4lano

Benutzer
Beiträge
6
Moin,
Ich hab da ein Problem, ich suche den nächstgelegenen Wert in einer Datenbank.
Die Tabelle schaut so aus:
Code:
-- --------------------------------------------------------
 
--
-- Tabellenstruktur für Tabelle `geoname`
--
 
CREATE TABLE IF NOT EXISTS `geoname` (
  `geonameid` int(11) NOT NULL,
  `name` varchar(200) DEFAULT NULL,
  `asciiname` varchar(200) DEFAULT NULL,
  `alternatenames` varchar(4000) DEFAULT NULL,
  `latitude` decimal(10,7) DEFAULT NULL,
  `longitude` decimal(10,7) DEFAULT NULL,
  `fclass` char(1) DEFAULT NULL,
  `fcode` varchar(10) DEFAULT NULL,
  `country` varchar(2) DEFAULT NULL,
  `cc2` varchar(60) DEFAULT NULL,
  `admin1` varchar(20) DEFAULT NULL,
  `admin2` varchar(80) DEFAULT NULL,
  `admin3` varchar(20) DEFAULT NULL,
  `admin4` varchar(20) DEFAULT NULL,
  `population` int(11) DEFAULT NULL,
  `elevation` int(11) DEFAULT NULL,
  `gtopo30` int(11) DEFAULT NULL,
  `timezone` varchar(40) DEFAULT NULL,
  `moddate` date DEFAULT NULL,
  PRIMARY KEY (`geonameid`),
  KEY `latitude` (`latitude`,`longitude`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
--
-- Daten für Tabelle `geoname`
--
 
INSERT INTO `geoname` (`geonameid`, `name`, `asciiname`, `alternatenames`, `latitude`, `longitude`, `fclass`, `fcode`, `country`, `cc2`, `admin1`, `admin2`, `admin3`, `admin4`, `population`, `elevation`, `gtopo30`, `timezone`, `moddate`) VALUES
(3038814, 'Costa de Xurius', 'Costa de Xurius', '', '42.5000000', '1.4833300', 'T', 'SLP', 'AD', '', '00', '', '', '', 0, 0, 1434, 'Europe/Andorra', '1993-12-23'),
(3038815, 'Font de la Xona', 'Font de la Xona', '', '42.5500300', '1.4498600', 'H', 'SPNG', 'AD', '', '04', '', '', '', 0, 0, 1976, 'Europe/Andorra', '2010-01-11'),
(3038816, 'Xixerella', 'Xixerella', '', '42.5532700', '1.4873600', 'P', 'PPL', 'AD', '', '04', '', '', '', 0, 0, 1417, 'Europe/Andorra', '2009-04-24');

Jetzt suche ich die Koordinaten die meiner Abfrage am nächsten sind.
zB suche ich nach latitude = 42.51000 longitude = 1.48300
Ich möchte nur ein Ergebnis bekommen, für den Fall das es mehrere Einträge gibt die zutreffen.
Für mein Bsp. sollte der Eintrag
Code:
(3038814, 'Costa de Xurius', 'Costa de Xurius', '', '42.5000000', '1.4833300', 'T', 'SLP', 'AD', '', '00', '', '', '', 0, 0, 1434, 'Europe/Andorra', '1993-12-23'),
Ausgegeben werden.
Wie bekomme ich das hin?

Vielen Dank schon mal und bevor ich es vergesse, das ganze bitte Idioten sicher erklären, da ich so gar kein Experte bin was SQL angeht.
 
Werbung:
Werbung:
Zurück
Oben