kostenloser Webspace werbefrei: lima-city


BINARY SQL

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    im laufe meines lesens habe ich nun vermehrt SQL anfragen mit dem schlüsselwort BINARY gefunden, besonders bei accnamen anfragen und so.
    jetzt stellt sich mir die frage: was bedeutet das BINARY genau?
    ich hab darüber jetzt einiges gelesen, aber alle quellen haben so leicht gegensächlich gesprochen. da kam irgendwie nichts bei rum.
    kann das hier mal einer erklären, der das dann MENSCHLICH erklärt, also auch für mich xD
    kann sein dass ich mich auch nur dümmer anstell als ich bin, aber ich würd mich freuen wenn das mal einer aufn gescheiten und ordentlichen punkt bringen kann :)

    danke :)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Recht einfach erklärt steht das hier: http://dev.mysql.com/doc/refman/5.1/de/charset-binary-op.html (finde ich jedenfalls).

    Mit BINARY kannst du also einen Spaltenvergleich "byte- statt zeichenweise" durchführen.

    Beispiel:
    +--------+
    | Spalte |
    +--------+
    | a      |
    +--------+


    Du hast also in der Tabelle (im Beispiel nenn ich die Tabelle mal "test") die Spalte "Spalte", in der der Wert "a" steht.
    Nun führst du einen Vergleich durch:

    SELECT * FROM `test` WHERE `Spalte` = 'A';


    Wenn du diese Abfrage ausführen würdest, bekämst du folgendes Ergebnis:

    mysql> SELECT * FROM `test` WHERE `Spalte` = 'A';
    +--------+
    | Spalte |
    +--------+
    | a      |
    +--------+
    1 row in set


    Wobei das ja eigentlich nicht richtig ist, denn du suchst ja nach dem Wert "A" (großgeschrieben), in der Tabelle steht aber nur "a" (kleingeschrieben). Normalerweise wird also nicht zwischen Groß- und Kleinschreibung unterschieden, obwohl der Bytecode von A und a eigentlich unterschiedlich ist.
    Mit BINARY kannst du nun diesen Bytecode aus der Tabelle auslesen. Und der ist bei "a" und "A" unterschiedlich.

    Diese Abfrage:

    SELECT * FROM `test` WHERE BINARY `Spalte` = 'A';


    Würde also folgende Ausgabe erzeugen:

    mysql> SELECT * FROM `test` WHERE BINARY `Spalte` = 'A';
    Empty set


    Ich hoffe, das war jetzt einigermaßen verständlich, weitere Informationen hierzu findest du in der MySQL-Referenz (Link s. oben).

    MfG mermadalis
  4. 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!