MatzeA: SQL - Alle Felder durchsuchen

Beitrag lesen

Servus,

SELECT [...] nachname = '%$suchstring%'

"LIKE", nicht "=".

Meine Frage ist ob es eine verkürzte Schreibweise dafür gibt.

Du könntest die einzelnen Spalten stringverknüpfen, allerdings kannst Du dann keinen (normalen) Index mehr verwenden (naja, geht bei LIKE eh nicht, ist also per se ineffizient). Welcher Operator dafür verantwortlich ist, hängt von Deinem DBMS ab. Allgemein ist das Bedürfnis nach einer derartigen Funktionalität ein fast sicheres Zeichen für ein schlecht durchdachtes DB-Layout; prüfe, ob Dein DBMS effizientere Möglichkeiten zur Verfügung stellt, etwa einen Volltext-Index.

Auf den index würde ich aber nach Möglichkeit verzichten. sowas kann den Performance Todesstoss für Deine DB bedeuten.

Wenn Deine suche über mehrere Tabellen geht würde ich die suche ohnehin nicht über alle Felder auf einmal machen.
Auch das kann Deiner DB den Todestoss versetzen.
Während Du in einem Fall eventuell mehrere millionen Einträge durchsuchst, könnte das jemanden der wirklich nur eine Kleinigkeit in der DB ändern möchte erheblich bremsen.

Sowas gefällt keinem Benutzer.

Gruss Matze