Daniel's
Web-Site
Home
-
Gott, Tee und die Welt
Informationen zu MySQL

Code aus einer mehrstufigen Haltestellen-Suche

1. SELECT
Das Ergebnis des 1. SELECT ist eine Liste von IDs, die nach der Anzahl der Übereinstimmungen mit den Suchkriterien sortiert ist. Die Umkreissuche geschieht aus Performance-Gründen in 2 Stufen: 1. Abstecken eines Quadrates, und 2. Anwenden des Satzes von Pythagoras auf die Orte in diesem Quadrat.


	SELECT [IDs von Haltestellen], [Anzahl der Treffer je ID], [Koordinaten,]
	FROM ([SUBSELECT 1] UNION [SUBSELECT 2] UNION [SUBSELECT 3] ...) AS zeilen,
	[Angabe der Tabelle mit Infos über Haltestellen und ihren Standort] 
	WHERE [Bedingungen: Vergleich von IDs, Umkreissuche 1. Teil]
	GROUP BY [Gruppierung anhand der in den Subselects gefundenen IDs]
	HAVING [Auswahl aus dem Ergebnis mit dem 2. Teil der Umkreissuche]
	ORDER BY [absteigende Sortierung der Ergebnisse nach Treffer-Zahl] 	DESC

Die Struktur des SUBSELECT enthält mehrere Blöcke in der Struktur
SELECT [ID] FROM [Tabelle] WHERE UPPER[Feld] LIKE UPPER('%[Suchbegriff]%'). Feldinhalte und Suchbegriffe werden in der Suche als nur aus Großbuchstaben bestehend behandelt, damit Groß-/Kleinschreibung keine Rolle spielt. Dies soll die Trefferzahl ebenso erhöhen wie die Prozentzeichen, die Platzhalter für beliebig viele Zeichen sind.

2. SELECT
Aufruf von Daten der gefundenen Haltestellen
Die Darstellung erfolgt in einer Ergebnisliste.


	SELECT [Name, Adresse, Linien] 
	FROM [mehrere mit "LEFT JOIN ... ON" verbundene Tabellen]
	WHERE [ID der Haltestelle] = [ID in Ergebnisliste des 1. SELECT] 
	GROUP BY [ID der Haltestelle]