Wert/Ausdruck in Tabellen-Spalte finden
Verfasst: 21.12.2009 13:56
Hallo,
ich bin schon eine Weile dran und komme nicht hinter die Lösung.
Ich möchte aus einer Tabelle einem oder mehrere Datensätze auslesen, welche in einer bestimmten Spalte einen Wert/Ausdruck enthalten. Mein Code sieht momentan so aus:
In der Spalte 'seite' sind die Seitenzahlen durch ein Komme getrennt enthalten, z.B. 5,17,25,38,103,117, Es können unterschiedlich viele Zahlen durch ein Komma getrennt eingetragen sein.
Ich möchte nun zum Beispiel alle Datensätze haben, welche in der Spalte 'seite' die Zahl 17 enthalten, aber nicht die Zahl 117.
Ich habe schon verschiedene Versuche mit LIKE und REGEXP gemacht, aber irgendwie finde ich die Lösung nicht. Entweder werden die falschen Datensätze ausgewählt, z.B.17 und 117 obwohl nur 17 gesucht wurde, oder es wird gar kein Datensatz ausgewählt.
[EDIT]
Ich habe die Lösung gefunden, mit FIND_IN_SET geht es.
Gruß Helmut
ich bin schon eine Weile dran und komme nicht hinter die Lösung.
Ich möchte aus einer Tabelle einem oder mehrere Datensätze auslesen, welche in einer bestimmten Spalte einen Wert/Ausdruck enthalten. Mein Code sieht momentan so aus:
Code: Alles auswählen
$seite = 17; //Test Beispiel
$sql = 'SELECT *
FROM ' . XYZ_TABLE . "
WHERE (seite REGEXP '($seite,[:>:])')
ORDER BY seite_id";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
Ich möchte nun zum Beispiel alle Datensätze haben, welche in der Spalte 'seite' die Zahl 17 enthalten, aber nicht die Zahl 117.
Ich habe schon verschiedene Versuche mit LIKE und REGEXP gemacht, aber irgendwie finde ich die Lösung nicht. Entweder werden die falschen Datensätze ausgewählt, z.B.17 und 117 obwohl nur 17 gesucht wurde, oder es wird gar kein Datensatz ausgewählt.
[EDIT]
Ich habe die Lösung gefunden, mit FIND_IN_SET geht es.
Code: Alles auswählen
$seite = 17; //Test Beispiel
$sql = 'SELECT *
FROM ' . XYZ_TABLE . "
WHERE FIND_IN_SET(" . $seite . ", seite)
ORDER BY seite_id";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
Gruß Helmut