SELECT * FROM table WHERE punkte>1000 (punkte = VARCHAR)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SELECT * FROM table WHERE punkte>1000 (punkte = VARCHAR)

    Hallo,

    normalerweise würde ich so abfragen:

    SELECT * FROM table WHERE punkte>1000

    Problem in der vorhandenen Datenbank ist aber,
    dass die Punkte in VARCHAR vorliegen. Auch nicht
    weiter schlimm, würden in den Werten nicht schon
    formatiert mit Tausenderpunkte drin stehen :-(

    Tabelle darf ich leider nicht ändern...

    Gibt es daher eine andere Möglichkeit? Mit Replace oder so?

    Hab's mal mit PHP angedeutet wie ich es meine:

    SELECT * FROM table WHERE str_replace(".","",punkte)>1000

  • #2
    wer das verbockt hat, sollte man wieder gelünscht werden.

    es gibt auch replace funktionen in sql. halte ich aber für weniger performant.

    Kommentar


    • #3
      Ja ich würde es auch lieber formatiert in PHP ausgeben, aber naja...

      Performance spielt bei lediglich 250 Datensätzen jetzt mal keine Rolle.

      Aber kann man überhaupt einen Vergleich ausführen nach REPLACE?

      So geht das jedenfalls nicht:

      SELECT *,REPLACE(punkte,'.','') AS neuepunkte FROM tabelle WHERE neuepunkte>10000

      Kommentar


      • #4
        versuch mal die typen zu casten. (CAST() oder CONVERT())

        (warum darfst du die Spalte nicht ändern? Haben die was gegen saubere Programmierung?

        Kommentar

        Lädt...
        X