Zitat von
chaosben:
SELECT name, vorname, telefonnumer FROM adressen where name || ' ' || vorname || ' ' || telefonnumer like '%Müller%'
Ist aber Geschmackssache.
Eher eine Frage der Performance. Während bei der Suche per LIKE über ein Feld eventuell ein Index verwendet werden kann, ist dies bei der 'Geschmackssache' unmöglich. In diesem Beispiel (
LIKE "%Müller%'
) wird das keinen großen Unterschied machen, aber bei Mustern à la "Müller%" kann ein guter Optimizer einen normalen Index für die Suche verwenden. Und wird es aller Wahrscheinlichkeit auch tun. (Es wird ja nach 'Müller' am Anfang eines Strings gesucht).
Versuche doch, einen Querygenerator zu schreiben, der über alle (Var)Char-Felder deiner Tabelle iteriert und das SELECT entsprechend aufbaut. Oder Du kapselst das in einer Stored Procedure.
Versuche, die Tabelle umzuformen, nur um eine 'elegante' Lösung herbeizuführen sind eine schöne Übung für die Normalisierung, taugen in der Praxis jedoch nur selten, da die Eleganz von der mangelnden Performance aufgefressen wird.