Rolf Rost: Numerische Sortierung erzwingen

Schönen Abend,

in mySQL hab ich da eine Spalte vom typ varchar, wobei es aber auch Records gibt, in denen diese Felder durchweg mit Integer-Werten gefüllt sind.

Da ich Letzteres mit SQL scho(e)n filtern kann, kam mir so der Gedanke, dabei gleich den Maximalwert zu ermitteln, oder wenigstens zu sortieren.

Indes, bei (1 2 ... 15 ... ):

  • als Max ermittelt MySQL die 9
    und
  • sortiert wird ASCII mäßig.

Is ja auch OK - aber: Gibts eine Möglichkeit, bei diesem Feldtyp eine numerische Sortierung bereits in der SQL-Query zu erzwingen?

Viele Grüße, Rolf

  1. Hallo,

    in mySQL hab ich da eine Spalte vom typ varchar
    Indes, bei (1 2 ... 15 ... ):

    • als Max ermittelt MySQL die 9
      und
    • sortiert wird ASCII mäßig.
      Is ja auch OK - aber: Gibts eine Möglichkeit, bei diesem Feldtyp eine numerische Sortierung bereits in der SQL-Query zu erzwingen?

    Ja, indem Du das Feld mit Hilfe eines Casts als numerischen Wert betrachtest.
    http://dev.mysql.com/doc/mysql/en/cast-functions.html

    viele Grüße

    Axel

    1. hi Axel,

      vielen Dank!

      Is ja auch OK - aber: Gibts eine Möglichkeit, bei diesem Feldtyp eine numerische Sortierung bereits in der SQL-Query zu erzwingen?
      Ja, indem Du das Feld mit Hilfe eines Casts als numerischen Wert betrachtest.
      http://dev.mysql.com/doc/mysql/en/cast-functions.html

      ... huch, da war ich doch fast schon von selber dort ... nochemal danke!

      Viele Grüße, Rolf

      --
      Brille? Nein brauch ich nicht, ich nicht!!!!!
      1. Abend, Rolf,

        Is ja auch OK - aber: Gibts eine Möglichkeit, bei diesem Feldtyp eine numerische Sortierung bereits in der SQL-Query zu erzwingen?
        Ja, indem Du das Feld mit Hilfe eines Casts als numerischen Wert betrachtest.
        http://dev.mysql.com/doc/mysql/en/cast-functions.html

        ... huch, da war ich doch fast schon von selber dort ... nochemal danke!

        wenn Du so weitermachst, wirst Du noch ein Experte der relationalen Datenhaltung.   :-)

        Gruss,
        Ludger