WernerK: Suche Kleinbuchstabe

Hallo

Ich habe eine MySQL 5 DB. Eine Tabelle mit Spalte "internalvalue" hat Wörter die fast alle mit Großbuchstaben beginnen wie "Blau", "Rot" usw.
Ein paar Zeilen jedoch haben auch Wörte in reinen Kleinbuchstaben wie "blau"
Gibt es wohl eine Möglichkeit bzw. eine SQL Abfrage das man alle Zeilen findet die mit Kleinbuchstaben anfangen?

Gruss
Werner

  1. Hi,

    Gibt es wohl eine Möglichkeit bzw. eine SQL Abfrage das man alle Zeilen findet die mit Kleinbuchstaben anfangen?

    Nein, es gibt nicht eine – es gibt mehrere :-)

    Zum einen könntest du mittels REGEXP einen kleinen simplen regulären Ausdruck nutzen, etwa in der Form WHERE spalte REGEXP BINARY '^[a-z]'. Das Manual weißt aber darauf hin, dass dieser Operator byteweise arbeitet, und daher bei Multibyte-Kodierungen unerwartete Ergebnisse liefern kann.

    Eine weitere Möglichkeit wäre, mittels LEFT den ersten Buchstaben zu extrahieren, und mit seinem per LOWER erzwungenen Kleinbuchstaben zu vergleichen, WHERE LEFT(spalte, 1) = LOWER(LEFT(spalte, 1)) BINARY

    In beiden Fällen habe ich das Keyword BINARY hinzu genommen, um einen exakten Vergleich zu erzwingen – andernfalls kann da wieder die zum Vergleichen benutzte Collation zuschlagen, und dann doch wieder case-insensitive vergleichen, was ja nicht gewollt ist.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?