WernerK: BINARY oder COLLATE utf8_bin ?

Hallo
Ich habe in einer MySQL DB varchar SPalten die mit der Kollation "utf8_general_ci" definiert sind.

Damit zwischen Groß- und Kleinschreibung unterschieden werden kann sehe ich zwei Möglichkeiten.
Mit "Collate utf8_bin"

...
AND
H.MyValue COLLATE utf8_bin = B.MyValue COLLATE utf8_bin

oder mit dem Operator BINARY

SELECT myname  FROM mytable WHERE BINARY myvalue = ?

Was würdet ihr empfehlen bzw. gibt es eine Methode die vorzuziehen ist?

Gruss
Werner

  1. Tach!

    Was würdet ihr empfehlen bzw. gibt es eine Methode die vorzuziehen ist?

    Was wird denn im Wesentlichen gebraucht? Sind es die binären Vergleiche, wie bei Usernamen, wo auch ä nicht gleich a sein darf? Die Kollationen enthalten ja auch noch solche Vergleichsregeln. Oder brauchst du eher diese Regeln und nur in Ausnahmefällen das Ergebnis eines exakten Vergleichs?

    dedlfix.

    1. Hallo

      danke dir.

      Was wird denn im Wesentlichen gebraucht? Sind es die binären Vergleiche, wie bei Usernamen, wo auch ä nicht gleich a sein darf? Die Kollationen enthalten ja auch noch solche Vergleichsregeln. Oder brauchst du eher diese Regeln und nur in Ausnahmefällen das Ergebnis eines exakten Vergleichs?

      ja, es geht mir eher um den exakten Vergleich. Ich habe festgestellt das z.b. "rot" und "Rot" vorkommt. Ich brauche aber immer nur ein Ergebnis bzw.das genaue Wort.

      Die Frage ist auch ob beide Möglichkeiten auch in SQLIte erlaubt sind? (es soll mal später vielleicht auch auf SQLite portiert werden..)

      Ich habe in der SQLit Doku nur "BINARY" gefunden.

      Gruss
      Werner