Umgekehrte Suche mit Wildcards

ARadauer

Top Contributor
Wir haben die Anforderung für eine umgekehrte Wildcardsuche in unserer Anwendung.

also zb in der Datenbank steht:
Code Rabatt
1_34 5%
2_34 6%
123_ 7%

Grundsätzlich ist das ja kein Problem...

select rabatt from rabatte where '123456' like concat(code,'%') order by code
liefert mir an erster stelle den gewünschten Eintrag.

Ich bin aber noch nicht ganz zufrieden, da ja der Benutzer eher die Wildcards * und ? kennt. Ich würd gerne automatisch beim inserten und updaten ? mit _ und * mit % ersetzen und beim lesen genau umgekehrt.

Kann ich das mit Hibernate irgendwie machen? Oder habt ihr andere Ideen?
 

mla.rue

Bekanntes Mitglied
du sagst doch selbst "unsere Anwendung"... wo steht geschrieben, dass in der Datenbank das ankommen muss, was der Benutzer in der Anwendung eintippt?
 
S

SlaterB

Gast
technisches Gemecker:
wieso steht noch die Rabatt-Spalte mit 5% usw. in den Beispielen zur DB?
wenn es um concat(%) und 123456 geht, ist ein irrelevantes 5% direkt hinter 1_34 extrem verwirrend,

deine Frage wäre mit
Code:
also zb in der Datenbank steht:
Code 
1_34 
2_34 
123_
viel deutlicher..

------

naheliegend könnte 1?34 in der DB gespeichert und vor dem LIKE noch ersetzt werden,
ob das LIKE dann funktioniert kann ich nicht sagen, selber schon getestet?
oder kommt die Idee nicht in Frage, nichts zu gesagt bisher, ist ja keine weit hergeholte Idee (sondern naheliegend ;) )
 

ARadauer

Top Contributor
deine Frage wäre mit
...viel deutlicher..

stimmt... ich stell aber halt auch selten fragen, das kann ich nicht so gut :toll:
------

naheliegend könnte 1?34 in der DB gespeichert und vor dem LIKE noch ersetzt werden,

ich weiß icht, macht mir dann der index nicht probleme? wird dass dann nicht automatisch ein full table scan?

und ausserdem müsste ich beim order auch nochmal ersetzen, da das ? zwischen den zahlen und buchstaben bei der sortierung ist..
 
Zuletzt bearbeitet:
S

SlaterB

Gast
warum sollte es bisher kein 'full table scan' sein?
wie ich mir das unbedarft vorstelle muss doch für jeden Eintrag erst concat ausgeführt
und dann vor allem das LIKE in all seinen Nöten ausgerechnet werden,
was könnte da bisher gespart sein?

zum Order:
sind Buchstaben beteiligt?
das _ ist doch bisher reichlich zufällig vor oder nach den Zahlen,
wenn du mit Glück bisher deine Sortierung danach richten konntest, nun gut, dann verlierst du in der Hinsicht etwas
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L SQL-Suche Datenbankprogrammierung 2
S Suche In SQL Datenbank mit array Datenbankprogrammierung 6
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
R Suche den nächsten timestamp Datenbankprogrammierung 5
D MySQL Suche nach Max Value in einer Tabelle Datenbankprogrammierung 7
M SQLite Suche nach String Datenbankprogrammierung 4
K JPA Suche Datenbankprogrammierung 14
J SELECT Abfrage/Suche Datenbankprogrammierung 4
AssELAss Oracle Suche nach Umlauten Ä und Ae ermöglichen Datenbankprogrammierung 11
AssELAss Oracle Wildcard-Suche über zwei Felder Datenbankprogrammierung 5
N suche embedded key-value-datenkank Datenbankprogrammierung 2
Screen Ich suche eine SQLDatenbank ohne JDBC-Treiber Datenbankprogrammierung 12
F suche Erstanschub für DB-Zugriff Datenbankprogrammierung 9
fastjack Kombinierte Suche und verschiedene Datumsformate Datenbankprogrammierung 2
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
A Suche Datenbankprogrammierung 4
U Suche OpenSource Projekt ? Datenbankprogrammierung 9
J Suche geeignete Datenbankstruktur Datenbankprogrammierung 3
M sql-code für suche in tabelle nach höchster transaktionsnr Datenbankprogrammierung 12
H Suche ein Hibernate-DAO-Gerüst zum lernen Datenbankprogrammierung 9
J Suche für meine Anwendung optimale Datenbank ! Datenbankprogrammierung 26
S LIKE - Suche in DB Datenbankprogrammierung 18
R MySQL Syntax für suche nach Textteil Datenbankprogrammierung 8
F Suche JDBC-Treiber-Installationsanleitung (SUSE Linux) Datenbankprogrammierung 18
F suche MySQl-Befehl um Datensatz an Tabellenende zu schreiben Datenbankprogrammierung 2

Ähnliche Java Themen


Oben