Frage zur Suche aus 2 Spalten

jayplaya1

Mitglied
Hey Leute, mal eine Frage.

Sagen wir Ich möchte nach einem Namen aus der DB suchen, zb Peter Müller. Geb ich jetzt Peter ein findet er was, gibt ich Müller ein findet er auch was, aber gebe ich Peter Müller ein, findet er nichts.
Gibts dafür nen SQL Code, oder müss ich die Eingabe vorher per PHP zerschnipseln, Z.b so dass vor dem Leerzeichen die Variable Vorname ist und nach dem Leerzeichen die Variable Nachname?
Wär ziemlich umständlich wenn man nach mehreren Kriterien suchen würde!

Momentan frage ich so ab:
PHP:
$sql = "SELECT * FROM tabelle
		WHERE 
		Vorname LIKE '%".mysql_real_escape_string($_GET['such'])."%' 
		OR 
		Nachname LIKE '%".mysql_real_escape_string($_GET['such'])."%' 
		";
 
Zuletzt bearbeitet von einem Moderator:
Hi

Ich nehm mal an MySQL?!
MySQL kennte keine einzelne Methode, String zu splitten. Das hätte man aber noch sehr schnell selbst rausgefunden ;)
Du kannst über Instr und Substr gehen und den String zerlegen. Über Php geht das aber sicherlich einfacher
 
String splitten ist eh blöd. Woher soll MySQL wissen wie der Name 'Peter aus der Au' gesplitet werden sollte..

Mit LOACATE() auf vorname und Nachname findest du was du suchst.

SQL:
-- Mein Testscript

-- Zu suchender Name setzen
SET @such := 'Peter aus der Au';

-- ausführendes Query
SELECT
	*
FROM
	-- Simulieren der Tabellendaten
	(
		SELECT 'Hans' AS vorname, 'Meier' AS nachname 
		UNION ALL SELECT 'Franz', 'Müller' 
		UNION SELECT 'Peter', 'aus der Au'
	) AS mydata
WHERE
	LOCATE(vorname, @such) <> 0
	AND LOCATE(nachname, @such) <> 0
 
Zuletzt bearbeitet von einem Moderator:
Zurück