Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL Abfrage mit Platzhaltern

Frage Entwicklung Datenbanken

Mitglied: as.siggi

as.siggi (Level 1) - Jetzt verbinden

02.09.2014, aktualisiert 13:29 Uhr, 974 Aufrufe, 10 Kommentare

Hallo,

ich komme bei einem Problem leider nicht weiter. Ich habe eine Datenbank und darin eine Tabelle wo ich Zahlen abspeichere, nun soll nach diesen Zahlen gesucht werden. Dies ist ja einfach und klappt auch wunderbar.
Nun muss ich auch Zahlen mit Platzhalter in die Tabelle einfügen( ungefähr so 1494##) also, dass ich eine Abfrage mit einer bestimmten Zahl mache und diese Datensätze auch ausgegeben werden. Z.B. 1494## soll herauskommen wenn 149401, 149402, usw. in der Abfrage übergeben wird.

  1. als Platzhalter für alle möglichen Zahlen (kann auch ein anderes Zeichen sein)

Mit freundlichen Grüßen Alex
Mitglied: LianenSchwinger
02.09.2014 um 13:35 Uhr
Hallo Alex,

das geht nicht. Wenn die Datenspalte als NUMBER deklariert ist können auch nur Zahlen gespeichert werden.
Dein Anliegen ginge nur zu realisieren wenn Du die Spalten als CHAR deklarierst.

G Jörg
Bitte warten ..
Mitglied: emeriks
02.09.2014, aktualisiert um 14:04 Uhr
Hi,
sofern die Zahlen eine feste Länge haben, wäre das doch eine klassische Von-Bis-Abfrage, oder nicht?

"1494##" bedeutet doch nichts anderes als ">=149400 und <149500".

Also z.B.

01.
SELECT * 
02.
FROM Tabelle 
03.
WHERE Zahl >= 149400 AND Zahl < 149500
E.
Bitte warten ..
Mitglied: as.siggi
02.09.2014 um 14:03 Uhr
Hallo Jörg

das ist klar, dass ich nicht als INT abspeichere sondern als VARCHAR(6).

Mit freundlichen Grüßen Alex
Bitte warten ..
Mitglied: emeriks
02.09.2014 um 14:05 Uhr
Na dann mit LIKE

01.
SELECT * 
02.
FROM Tabelle 
03.
WHERE Zahl LIKE '1494%'
E.
Bitte warten ..
Mitglied: as.siggi
02.09.2014 um 14:06 Uhr
Hallo emeriks

nein eben nicht, da ich ja nicht die genaue Zahl in der Datenbank habe sondern nur die Zahl mit den Platzhaltern und die genaue Zahl von außen übergeben bekomme.

Mit freundlichen Grüßen Alex
Bitte warten ..
Mitglied: emeriks
02.09.2014 um 14:08 Uhr
Wie jetzt?
Du hast in der DB z.B. "1494##" stehen und willst nach z.B. "149411" suchen und dann dafür denn Datensatz mit "1494##" in der Ausgabe haben?

E.
Bitte warten ..
Mitglied: SlainteMhath
02.09.2014 um 14:08 Uhr
Moin,

das geht nur wenn du das "Muster" nachdem gesucht wird als Intervall oder Liste angeben kannst,
1494## entspricht z.b. 149400 bis 149499
1#9400 entspricht z.b. 119400, 129400, 139400 usw.

Wenns komplexer wird, müsstest du tatsächlich die Zahlen als (var)char abspeichern und mit entsprechenden (regulären) Ausdrücken durchsuchen.

Ggfs. kannst du aber auch die gespeicherte Zahl direkt in WHERE Klausel in einen varchar umwandeln und entsprechend filtern... aber performant ist das dann nicht mehr,

lg,
Slainte
Bitte warten ..
Mitglied: as.siggi
02.09.2014 um 14:37 Uhr
Moin,

also muss ich wohl oder über eine "von bis" Lösung verwenden und dann mit BETWEEN abfragen. Ist zwar nicht das was ich mir vorgestellt habe, aber wenn nicht anders geht.

Mit freundlichen Grüßen Alex
Bitte warten ..
Mitglied: MadMax
02.09.2014 um 17:53 Uhr
Hallo Alex,

welche Datenbank verwendest Du?
Und wie sollen die Abfragen genau aussehen? In der DB sind anscheinend die Zahlen mit Platzhaltern, und wie suchst Du, nach genauen Zahlen oder auch mit Platzhaltern? Wenn Du nach genauen Werten suchst, würde das mit SQL Server z.B. so aussehen:
01.
select * from Tabelle where '149401' like replace (Spalte, '#', '_')
Anmerkung 1: Für die Geschwindigkeit gebe ich keine Garantie.
Anmerkung 2: Wenn Du als Platzhalter gleich den Unterstrich nimmst, dann sparst Du Dir das replace.

Wenn Du auch mit Platzhaltern suchen willst, dann dürfte das nicht so einfach gehen.

Gruß, Mad Max
Bitte warten ..
Mitglied: as.siggi
04.09.2014 um 19:26 Uhr
Hallo

Ich werde jetzt eine komplexere "von-bis" Lösung verwenden.

Danke trotzdem!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Datenbanken
gelöst Schleifen in SQL-Abfrage bei 2 Tabellen (2)

Frage von Aximand zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (12)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...