Autor |
Nachricht |
Decart
Threadersteller
Dabei seit: 10.08.2006
Ort: Bremen
Alter: 42
Geschlecht:
|
Verfasst Fr 14.01.2011 11:20
Titel Abfrage in nicht normalisierter Tabelle - Regexp die Lösung? |
|
|
Hallo Leute,
ich habe ein Riesenproblem mit einer Abfrage in einem Datenbankfeld, wo die Fremdschlüssel kommasepariert gelistet sind, also z.B. "2, 21, 46"
Jetzt muss ich eine Abfrage machen (und ich habe nicht mehr Möglichkeiten, als die ein Abfrage, also kein großartiges PHP oder so) und die Datensätze "kriegen" welche z.Bsp. die "2" enthalten ... wobei z.Bsp. natürlich die "21" nicht gezählt werden darf ... also LIKE '%2%' läuft schon mal nicht.
Jetzt gibt es ja die Möglichkeit in Abfragen mit regulären Ausdrücken zu arbeiten ( http://dev.mysql.com/doc/refman/5.1-olh/de/regexp.html )
... nur bekomme ich hier die Syntax nicht (ist glaube ich auch sehr kompliziert in dem Fall), denn sie muss folgendes leisten:
-> vor und nach der gesuchten ID darf quasi alles stehen (auch nix) nur direkt vor und nach der gesuchten ID darf keine Ziffer stehen.
Mein Ansatz war erst einmal folgender:
.*[^digit]" . $gesuchte_id . "[^digit].*
Das funktioniert natürlich nicht, da dieses eine Nichtziffer erfordern würde vor oder nach der gesuchten ID, aber es kann ja auch die erste oder letzte ID sein in dem gesuchten Feld ... ich stehe echt auf dem Schlauch.
|
|
|
|
|
Zeithase
Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht:
|
Verfasst Fr 14.01.2011 11:25
Titel
|
|
|
Code: | ... WHERE FIND_IN_SET('wert',spaltenname)!=0 |
|
|
|
|
|
Anzeige
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 14.01.2011 11:27
Titel
|
|
|
explode() auf Anwendungsseite und/oder ein WHERE IN auf Datenbankseite.
|
|
|
|
|
Decart
Threadersteller
Dabei seit: 10.08.2006
Ort: Bremen
Alter: 42
Geschlecht:
|
Verfasst Fr 14.01.2011 11:45
Titel
|
|
|
Zeithase hat geschrieben: | Code: | ... WHERE FIND_IN_SET('wert',spaltenname)!=0 |
|
DANKE! Das war es! Explode etc. kann ich nicht nehmen, da es in der Datenbankabfrage funktionieren musste ... (Ich hätte mich vielleicht auch einfacher ausdrücken können mit der Frage nache einem umgekehrten "WHERE IN") ... aber ich dachte ich komme an den REGEXP nicht vorbei
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP] regexp & listen
Javascript RegExp
Javascript Regexp
[PHP] RegExp NERRRRV!
[php] preg_match_all RegExp Problem
Höhe aus Tabelle auslesen und in andere Tabelle einfügen
|
|