SELECT nur auf den ersten Index eines Feldes?
Mario
- datenbank
0 EKKi0 Frank (no reg)0 Ilja
Hallo alle beisammen,
ich möchte aus meiner Datenbank (mysql) nur die Datensätze auslesen, die in dem Feld "plz" mit der Ziffer 4 anfangen. Ist das irgendwie machbar?
Oder muss ich zunächst alle Datensätze auslesen und den per php meinen Filter bauen?
Vielen Dank Dank für hilfreiche Tipps.
Gruß Mario
Mahlzeit Mario,
ich möchte aus meiner Datenbank (mysql) nur die Datensätze auslesen, die in dem Feld "plz" mit der Ziffer 4 anfangen. Ist das irgendwie machbar?
Datenbank-Version? Feldtyp?
Oder muss ich zunächst alle Datensätze auslesen und den per php meinen Filter bauen?
Nein, für das Auslesen von Daten Daten aus einer Datenbank ist SQL da ... evtl. geht es so:
SELECT feld1
, feld2
, feld3
FROM tabelle
WHERE CAST(plz AS CHAR) LIKE '4%'
Ich vermute aber, dass das nicht besonders performant ist ...
MfG,
EKKi
Hallo,
PLZ Felder sind oft als CHAR oder VARCHAR gespeichert, wenn nicht kannst du sie von einem numerischen Wert wie INTEGER darauf "casten". Alles weitere kannst du dann mit Zeichenkettenfunktionen wie LEFT() oder SUBSTR() und einem simplen Vergleichs, z.b. LEFT(feld,1) = '4'
erledigen.
HTH, Ciao, Frank
yo,
Alles weitere kannst du dann mit Zeichenkettenfunktionen wie LEFT() oder SUBSTR() und einem simplen Vergleichs, z.b.
LEFT(feld,1) = '4'
erledigen.
ich würde funktionmen wie LEFT oder SUBSTR in diesem falle vermeiden und LIKE verwenden, was den vorteil hat, das ein vorhandener index auf der spalte plz genutzt werden könnte.
Ilja