MySQL Datenbankabfrage; ob Zahl in einem VARCHAR vorhanden ist

schultze

Mitglied
Hallo,

ich habe in einem Feld einer Tabelle Beispielsweise folgenden String gespeichert:
22-95-810-2-15

Nun würde ich gerne per PHP abfragen, ob eine gewisse Zahl in der Zeichenkette vorhanden ist.
Beispiel: 1
Ich habe das bisher nicht richtig hinbekommen. Bei meinen Abfragen hat er mir einen erfolgreichen Wert zurück gegeben, obwohl die Zahl 1 ja selbst nicht vorhanden ist. (aber 810) Wie kann ich eine Abfrage gestalten, dass er zwischen den - trennt!?

Vielen Dank für eure Hilfe,
 
Nimm die strpos()-Funktion. Wenn der Rückgabewert mit false nicht identisch ist, ist die Zeichenkette enthalten:
PHP:
strpos('foo', 'bar') !== false
 
Du kannst gleich im Query abfragen...per RegExp():
Code:
SELECT * FROM tabelle where spalte RegExp('([^[:digit:]]|^)1([^[:digit:]]|$)')
...der Ausdruck greift, wenn sich vor/nach der Zahl entweder eine Nicht-Ziffer oder Stringbeginn-/Ende befindet.
 
Zuletzt bearbeitet:
Es sieht so aus, als ob ich der Lösung recht nahme bin! :-)
Der zweite Vorschlag scheint der geeigneteste zu sein.
Wie funktioniert die Funktion genau?

Die Zahl befindet sich in der var $id... Wie müsste die Abfrage lauten?
Danke
 
Zurück