BINARY SQL
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anfrage
auslese
beispiel
code
erzeugen
folgende ausgabe
folgendes ergebnis
frage
freuen
information
kleinschreibung
lauf
lesen
referenz
set
spalte
tabelle
test
url
-
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 :) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage