MySQL Produktname mit Versionsnummer suchen

ronaldo84

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem. Und zwar sind bei uns diverse Artikel in einer MySQL-DB gespeichert. Die Tabelle enthält die Spalte Kurz-Bez. in dieser Spalte sind der Name des Produkte und ggf. die Versionsnummer vorhanden. Nun möchte ich speziell nach einer Version suchen z.B. Tutorials 6.0. Nun werden mir aber leider auch die Datensätze Tutorials 5.5 und Tutorials 4.0 angezeigt. Wie kann ich gezielt nach der Versionsnummer suchen?

Habe mich mal erkundigt und bin mehrfach auf RegExp gestossen. Leider habe ich damit noch nicht gearbeitet. Meine versuche sehen so aus:
SQL:
SELECT  * FROM  table1 WHERE [kurz-bez] REGEXP  "[5.7]"


Leider werden mir aber alle Datensätze angezeigt die einfach irgendeine Zahl enthalten. z.B. auch tutorials 2.3 oder ähnliches. Wie muss ich das anpassen?

Vielen Dank
 
Wieso suchst du nicht direkt nach allem was „Tutorials 6.0“ enthält oder dem sogar identisch ist?
 
Weil mein Chef unbedingt will das wenn jemand z.B. Tutorials 6.0 eingibt auch Ergebnisse geliefert werden wie Tutorials Light 6.0 oder Tutorials Classic 6.0. Deswegen splitte ich den Suchbegriff anhand von leerzeichen und frage dann für jeden Begriff einzeln ab. Nur leider klappt das mit dem Like '%6.0%' dann leider nicht
 
Vermutlich hast du es nur falsch implementiert, denn bei mir funktioniert’s:
Code:
SELECT "Tutorials 6.0" LIKE "%6.0%"
Sollte „1“ liefern.
 
Das Problem bei einem RegExp ist, dass der Index nicht mehr genutzt werden kann, und so mit einem Full-Table-Scan durch die Tabelle gegangen wird und jede Zeile geprüft wird.
Wie wäre es denn mit einem Full-Text-Index? der müsste ja erfüllen, was du suchst
 
Hä, jetzt gehts. Obwohl ich mir eigentlich sicher bin das ich die Where-Bedingung genau so gemacht habe. Aber egal. Vielen Dank

Einen Full-Text-Index habe ich auch schon versucht. Da würden aber auch treffer angezeigt werden die nicht sinnvoll sind.
 
Zurück