Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Text suchen, dabei die Leerzeichen ignorieren (https://www.delphipraxis.net/217209-text-suchen-dabei-die-leerzeichen-ignorieren.html)

Kostas 21. Mai 2025 21:24

Datenbank: Firebird • Version: 3.0 • Zugriff über: Firebac

Text suchen, dabei die Leerzeichen ignorieren
 
Hallo Zusammen,

gibt es eine Möglichkeit in FB 3.0 in ein Feld zu suchen wobie die Leerzeichen ignoriert werden?

Der Inhalt einens Feld kann sein:
DSüB-T-C-0140380
DSüB-T-C-0 140 380
DSüB-T-C-0 140380
DSüB-T-C-014 038 0
DSüB-T-C-0 1403 80

Die Anwender haben die Bezeichnung unterschiedlich erfasst.

Gesucht wird nach DSüB-T-C-0140380.
Ich könnte jetzt ein neues Feld hinzufügen und über einen Trigger alle Leerzeichen entfernen und dieses Feld zukünftig zum Suchen verwenden.
Möglicherweise gib es jedoch eine Möglichkeit die Leerzeichen im Text zu ignorieren.

TurboMagic 21. Mai 2025 21:38

AW: Text suchen, dabei die Leerzeichen ignorieren
 
Wie wäre es damit:

Code:
SELECT * FROM MyTable
WHERE MyField LIKE 'DSüB-T-C-0%';
Das % ist dabei die Notation für "egal was danach kommt".

Kostas 21. Mai 2025 21:41

AW: Text suchen, dabei die Leerzeichen ignorieren
 
Hi,

leider muss der komplette Text gsucht werden. Der Text vor der Nummer gibt es öfters. Es gibt weitere Bezeichner und die Anzahl der Zeichen für die Nummer ist ebenfalls dynamisch.

mandras 21. Mai 2025 22:18

AW: Text suchen, dabei die Leerzeichen ignorieren
 
evtl. könnte folgendes helfen:

Code:
SELECT * from MyTable
where replace (MyField,' ','')
like '<hierdersuchbegriff>'

TurboMagic 21. Mai 2025 22:20

AW: Text suchen, dabei die Leerzeichen ignorieren
 
Hallo,

dann vielleicht das hier:
https://www.firebirdsql.org/refdocs/...c-replace.html

Damit könnte man alle Leerzeichen ersetzen.

Oder man könnte ein Programm schreiben welches in der Tabelle mal alles
glatt zieht und dann auch das normalerweise zum EInfügen von Daten benutzte
Programm so abzuändern, dass es diese Eingaben immer in das korrekte
Format bringt.

TurboMagic 21. Mai 2025 22:21

AW: Text suchen, dabei die Leerzeichen ignorieren
 
Zitat:

Zitat von mandras (Beitrag 1548828)
evtl. könnte folgendes helfen:

Code:
SELECT * from MyTable
where replace (MyField,' ','')
like '<hierdersuchbegriff>'

Ah! So ungefähr das, was ich mir auch vorgestellt habe.

Jasocul 22. Mai 2025 05:08

AW: Text suchen, dabei die Leerzeichen ignorieren
 
Zitat:

Zitat von Kostas (Beitrag 1548824)
Ich könnte jetzt ein neues Feld hinzufügen und über einen Trigger alle Leerzeichen entfernen und dieses Feld zukünftig zum Suchen verwenden.

Die Lösung von mandras ist sicher eine Möglichkeit, allerdings wird damit jeder Index ignoriert. Wenn du in der Tabelle große Datenmengen hast, empfehle ich die Lösung mit dem Trigger. Weitere Alternativen wären:
- Anwendern die flexible Eingabe zu untersagen (funktioniert meistens nicht)
- Diese Form der Eingabe nicht zu ermöglichen
- Nach der Eingabe alle Leerzeichen zu entfernen und erst dann zu speichern
Allerdings müsste dann auch eine einmalige Bereinigung durchgeführt werden, wie TurboMagic es vorgeschlagen hat.

Diese Wege sind aber nur erforderlich, wenn du eine große Datenmenge hast und deine Suchfunktion dadurch Performance-Probleme bekommt.

Kostas 22. Mai 2025 07:17

AW: Text suchen, dabei die Leerzeichen ignorieren
 
Zitat:

Zitat von mandras (Beitrag 1548828)
evtl. könnte folgendes helfen:

Code:
SELECT * from MyTable
where replace (MyField,' ','')
like '<hierdersuchbegriff>'

Perfekt, geau das habe ich geusucht.
Damit werden ich einmalig alle Records aktualisieren und in ein Trigger einbauen so dass zukünftige Eingaben gleich bereinigt werden.

Bestend Dank und eine schöne Zeit zusammen.

mkinzler 22. Mai 2025 13:23

AW: Text suchen, dabei die Leerzeichen ignorieren
 
Oder die Verwendung eines "expression index"


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz