kostenloser Webspace werbefrei: lima-city


SUBTR() in MySQL-Query

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    s*********e

    Hallo, also im Chat konnte mir leider nciht geholfen werden, also versuche ich es hier.

    Ich möchte gerne, dass von einer Spalte nur die erste Ziffer kontrolliert wird, ob die übereinstimmt, auch, wenn sie mehrere hat.
    Bei mir handelt es sich um die plz.

    Dabei fand ich das im Internet:
    SUBSTR(plz, 1, 1) = '2'

    Mysql starts from 1, php from 0


    Also sollte er mir ja nun alle plz ausgeben, die mit 2 anfangen....macht er aber nich^^

    Ist hierdran etwas falsch, oder liegt das am SUBSTR() ?

    $search[easy] = mysql_query("SELECT * FROM `fore_cm_clubs` WHERE SUBSTR(plz, 1, 1)='".$search[region]."' AND starG>='".$_POST[rating]."'  ORDER BY name ASC;");


    MfG

    Specialdune


    Beitrag geaendert: 11.1.2007 22:41:24 von specialdune
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. du könntest erst alle aus der datenbank abrufen

    dann könntest du mit if(substr($plz, 0,1) == 2)

    schauen welche plz mit 2 anfängt

    Der Fehler ist dass subst bei deiner Variante die Zahl NACH der ersten Zahl ausgibt. bei substr($plz, 0,1) wird eine Zahl NACH der "nullten" ausgegeben

    Beitrag geaendert: 11.1.2007 22:47:10 von korbiw

  4. Hallo, also im Chat konnte mir leider nciht geholfen werden, also versuche ich es hier.

    Ich möchte gerne, dass von einer Spalte nur die erste Ziffer kontrolliert wird, ob die übereinstimmt, auch, wenn sie mehrere hat.
    Bei mir handelt es sich um die plz.

    Dabei fand ich das im Internet:
    SUBSTR(plz, 1, 1) = '2'

    Mysql starts from 1, php from 0

    Also sollte er mir ja nun alle plz ausgeben, die mit 2 anfangen....macht er aber nich^^

    Ist hierdran etwas falsch, oder liegt das am SUBSTR() ?

    $search[easy] = mysql_query("SELECT * FROM `fore_cm_clubs` WHERE SUBSTR(plz, 1, 1)='".$search[region]."' AND starG>='".$_POST[rating]."'  ORDER BY name ASC;");



    Aber frag dich doch mal was du machen möchtest?
    Denn vielleicht wäre eine anderen Abfrage besser geeignet.

    Z.B. wenn es eine Zahl ist kann man ja mal schauen ob sie zwischen 60000 und 49999 liegt. Denn vergleiche mit Strigst dürften langsamer als vergleiche von Zahlen sein.
    Oder man könnte den LIKE Operator benutzen, wenn es doch ein String ist ( http://www.little-idiot.de/mysql/mysql-168.html ).
    Da dieser Operator wenn er richtig benutz wird schneller sein wird als ein Stringoperator.

    Fazit:
    An schnellsten dürfte das hier sein:
    $search[easy] = mysql_query("SELECT * FROM `fore_cm_clubs` WHERE plz > ".($search[region]-1)."9999 AND plz < ".($search[region]+1)."0000 AND starG>='".$_POST[rating]."'  ORDER BY name ASC;");


    Etwas Langsamer wird dann das hier sein:
    $search[easy] = mysql_query("SELECT * FROM `fore_cm_clubs` WHERE plz LIKE '".$search[region]."%' AND starG>='".$_POST[rating]."'  ORDER BY name ASC;");


    Jens
  5. Autor dieses Themas

    s*********e

    @ jcr, genau das will ich vermeiden. Einfach Ausweg nehmen^^
    Wenn man zb. nach Städten sucht die mit D anfangen, geht das schonmal nichtmehr.. ;) Deshalb wollt ichs so lösen^^

    Und es geht jetzt auch, habs hinbekommen :)
    Danke euch, mfg

  6. @ jcr, genau das will ich vermeiden. Einfach Ausweg nehmen^^
    Wenn man zb. nach Städten sucht die mit D anfangen, geht das schonmal nichtmehr.. ;) Deshalb wollt ichs so lösen^^


    Dann hast du mein Post wohl nicht verstanden. ;)

    jacr schrieb:
    Oder man könnte den LIKE Operator benutzen, wenn es doch ein String ist ( http://www.little-idiot.de/mysql/mysql-168.html ).
    Da dieser Operator wenn er richtig benutz wird schneller sein wird als ein Stringoperator.


    Hast du mal geschaut was LIKE macht?
    Was macht wohl:
    WHERE plz LIKE 'D%'


    Und das dürfte schneller als mit SUBSTR sein.

    Jens
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!