AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Text suchen, dabei die Leerzeichen ignorieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text suchen, dabei die Leerzeichen ignorieren

Ein Thema von Kostas · begonnen am 21. Mai 2025 · letzter Beitrag vom 22. Mai 2025
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Text suchen, dabei die Leerzeichen ignorieren

  Alt 21. Mai 2025, 21:24
Datenbank: Firebird • Version: 3.0 • Zugriff über: Firebac
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.090 Beiträge
 
Delphi 12 Athens
 
#2

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 21. Mai 2025, 21:38
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".
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#3

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 21. Mai 2025, 21:41
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.
  Mit Zitat antworten Zitat
mandras

Registriert seit: 22. Mai 2019
3 Beiträge
 
#4

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 21. Mai 2025, 22:18
evtl. könnte folgendes helfen:

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

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.090 Beiträge
 
Delphi 12 Athens
 
#5

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 21. Mai 2025, 22:21
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.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#6

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 22. Mai 2025, 07:17
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.090 Beiträge
 
Delphi 12 Athens
 
#7

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 21. Mai 2025, 22:20
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.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.374 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 22. Mai 2025, 05:08
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.
Peter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Text suchen, dabei die Leerzeichen ignorieren

  Alt 22. Mai 2025, 13:23
Oder die Verwendung eines "expression index"
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 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