AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zeichen bei SELECT ignorieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichen bei SELECT ignorieren

Ein Thema von fillibuster · begonnen am 29. Okt 2013 · letzter Beitrag vom 31. Okt 2013
Antwort Antwort
fillibuster

Registriert seit: 3. Nov 2010
Ort: Coesfeld
245 Beiträge
 
Delphi 2010 Professional
 
#1

Zeichen bei SELECT ignorieren

  Alt 29. Okt 2013, 12:26
Datenbank: SQLite • Version: 3.x • Zugriff über: Unidac
Hallo,

ist es möglich mit SQL eine Abfrage über String-Felder zu machen und dabei bestimmte Zeichen zu ignorieren bzw. nur nach Zahlen zu suchen? Konkret geht es mir darum in Telefonnummern zu suchen. Die Nummer inkl. Vorwahl bekomme ich ohne führende Null als reine Zahlenzeichenkette. In der DB sind aber auch Zeichen (+/...) abgespeichert.

Danke!

Geändert von fillibuster (29. Okt 2013 um 12:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.259 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Zeichen bei SELECT ignorieren

  Alt 29. Okt 2013, 12:49
Hai fillibuster,

ich würde nicht versuchen zeichen zu ignorieren sondern die Daten in der Tabelle in eine vernünftige Form zu bringen.

Also drei Felder für eine Telefonnumemer

LKZ - Landeskennzahl ohne nullen oder so (z.B. 49 für Deutschland, 1 für USA/Nordamerika, 44 für England)
OKZ - Ortskennzahl auch ohne nullen (z.B. 89 für München, 69 für Frankfurt)
Nummer - Die Nummer des Teilnehmers.

Dann kannst Du vernünftig suchen.

Anstelle der LKZ würde es sich auch anbieten eine Tabelle mit allen LKZ anzulegen und bei dem "Kontakt" dan nur die ID der LKZ aus der Tabelle zu verwenden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Zeichen bei SELECT ignorieren

  Alt 29. Okt 2013, 12:56
@Sharky
Da träumt aber manche "prof. Personen Daten Verwaltung" von.

@fillibuster
eine andere Möglichkeit wäre es die Tel.Nummern gleich richtig zu speichern:
+49 811 1234567

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
fillibuster

Registriert seit: 3. Nov 2010
Ort: Coesfeld
245 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Zeichen bei SELECT ignorieren

  Alt 29. Okt 2013, 14:11
Hallo,

die Tabelle jetzt noch umzuformen ist nicht möglich. Die einzige Möglichkeit, die in der Richtung funktionieren würde, wäre ein zusätzliches Feld und alle Nummern bereinigt eintragen. Das ist selbst aber für den konkreten Fall viel zu umständlich, deshalb: gibt es eine Möglichkeit mit SQL Nummern zu suchen und dabei alle anderen Zeichen zu ignorieren?

Viele Grüße ...

BTW: Ich glaube beim Speichern von Telefonnumern gibt es min. 25 Ansichten, wie es richtig geht
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
684 Beiträge
 
Delphi 12 Athens
 
#5

AW: Zeichen bei SELECT ignorieren

  Alt 29. Okt 2013, 14:17
Erstelle Dir in SQL eine Function, welche ein vergleichbares Format hervorbringt und nutze diese.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Zeichen bei SELECT ignorieren

  Alt 29. Okt 2013, 15:21
Hallo,

die Tabelle jetzt noch umzuformen ist nicht möglich. Die einzige Möglichkeit, die in der Richtung funktionieren würde, wäre ein zusätzliches Feld und alle Nummern bereinigt eintragen. Das ist selbst aber für den konkreten Fall viel zu umständlich, deshalb: gibt es eine Möglichkeit mit SQL Nummern zu suchen und dabei alle anderen Zeichen zu ignorieren?
Dann schau mal nach was Dein SQL-Dialekt her gibt. Je nachdem werden z.B. solche Konstrukte unterstützt:
Code:
select irgendwas
from meinetabelle
where satz like '['+','-']['0'..'9']__%'
das könnte weiter helfen.

BTW: Ich glaube beim Speichern von Telefonnumern gibt es min. 25 Ansichten, wie es richtig geht
dann schau mal hier herein.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Zeichen bei SELECT ignorieren

  Alt 30. Okt 2013, 06:37
Ich bereite mir den Suchstring für die Telefonnummer, die von der Telefonanlage kommt folgendermaßen auf, um sie dann in meiner Datenbank zu suchen:

Delphi-Quellcode:
  for i := 1 to Length(TelNr) do
  begin
    SuchTel := SuchTel + '%' + TelNr[i];
  end;
  SuchTel := SuchTel + '%';


  lSQL.Add('WHERE Telefon1 like ' + StrToSQL(SuchTel));
  lSQL.Add(' OR Telefon2 like ' + StrToSQL(SuchTel));
  lSQL.Add(' OR MobilTel like ' + StrToSQL(SuchTel));
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  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 11:36 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