Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL query leng > 100 AND leng < -5

Einklappen

Neue Werbung 2019

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

  • SQL query leng > 100 AND leng < -5

    Hallo

    guidepin_len sind die längen von den guide pins in der Datenbank
    manche längen sind in mm die sind +positiv
    manche längen sind in inch die sind -negativ


    `ALLE LÄMGEN` GRÖßER 150mm UND `ALLE LÄNGEN` KLEINER -5.9055"
    `guidepin_len` > 150 AND `guidepin_len` < -5.9055

    aber leider funktioniert das so nicht
    also wenn der user nach Größer 150mm sucht müssen auch die werte Kleiner -5.9055 angezeigt werde.


    Don Roberto

  • #2
    `ALLE LÄMGEN` GRÖßER 150mm UND `ALLE LÄNGEN` KLEINER -5.9055"
    `guidepin_len` > 150 AND `guidepin_len` < -5.9055
    bitte poste die EXAKTE Abfrage & ein BISSCHEN ausführlicher , was du bezweckst, sonst kann man dir hier nicht helfen. --> wo ist zum Beispiel die WHERE-, FROM-, etc. -Clause -->
    Code:
    SELECT ... FROM ... WHERE ...
    Auf das Spiel "Rat mal, was ich meine" stehen hier nicht sehr viele - ich zumindest nicht. Sorry, meine es nicht böse, wollte damit sagen, BITTE DAS PROBLEM GENAUER BESCHREIBEN.

    Nix für ungut &
    LG Andreas

    komisch: Kaum macht man`s richtig funktioniert`s a scho.

    Kommentar


    • #3
      Das muss eine oder-Verknüpfung sein. Es kann ja nicht < 0 UND > 0 sein. Aber wieso ist das so seltsam gespeichert? Warum nicht nur in einer Maßeinheit?

      Kommentar


      • #4
        Du scheinst 2 unterschiedliche Einheiten in einer Spalte abzulegen, das sollte man so nicht machen. Werte werden dort einheitlich(mm oder inch) abgelegt, dazu kannst du sie ja vor dem abspeichern umrechnen. Diese Problem jetzt im nach hinein zu umschiffen versuchen ist jedenfalls der falsche Ansatz.

        Kommentar


        • #5
          Du scheinst 2 unterschiedliche Einheiten in einer Spalte abzulegen, [...]
          Warum nicht nur in einer Maßeinheit?
          Achso, jetzt weiß ich was DonRoberto WAHRSCHEINLICH meint:
          --> Hilfe zur Selbsthilfe:
          Code:
          SELECT field_names FROM table_name WHERE guidepin_len BETWEEN -5.9055 * 25.4 AND 150;
          1 inch (bzw. Zoll) = 2,54 CENTI-Meter mal 10 sind MILLI-Meter => bei 2,54 das Komma um 1 Stelle nach rechts verschieben - daher: -5.9055 * 25.4

          Sonst fällt mir leider nicht ein, was gemeint sein sollte. Hoffe, trotzdem geholfen zu haben.

          komisch: Kaum macht man`s richtig funktioniert`s a scho.

          Kommentar


          • #6
            Moin moin,

            Sonst fällt mir leider nicht ein, was gemeint sein sollte.
            Ich möchte die Datensätze "die größer als 10 sind" und die "die kleiner als 2 sind". Sprachlich passts, deshalb geht die Abfrage in die falsche Richtung - in logischen Ausdrücken muss man das anders formulieren.
            OR statt AND.
            [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
            [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

            Kommentar


            • #7
              entweder
              PHP-Code:
              SELECT field_names
              FROM 
              `table_name`
              WHERE `guidepin_len` > 150 OR `guidepin_len` < -5.9055 
              Oder schon beim Eintragen umrechnen
              PHP-Code:
              INPUT INTO `table_name` (`guidepin_len`) VALUES
              (5.9055 25.4),
              ... 
              Mit einem UPDATE kannst du so auch alle negativen Werte auf mm bringen
              PHP-Code:
              UPDATE `table_name`
              SET `guidepin_len` = (ABS(-5.9055)* 25.4)
              WHERE `guidepin_len` < 0
              Ich hoffe es hat klick gemacht...

              Kommentar


              • #8
                Ich möchte die Datensätze "die größer als 10 sind" und die "die kleiner als 2 sind". Sprachlich passts, deshalb geht die Abfrage in die falsche Richtung - in logischen Ausdrücken muss man das anders formulieren.
                OR statt AND.
                Da hast du nat. Recht. Ich habe halt offensichtlich seine "Beabsichtigung" falsch verstanden.

                komisch: Kaum macht man`s richtig funktioniert`s a scho.

                Kommentar


                • #9
                  Zitat von protestix Beitrag anzeigen
                  entweder
                  PHP-Code:
                  SELECT field_names
                  FROM 
                  `table_name`
                  WHERE `guidepin_len` > 150 OR `guidepin_len` < -5.9055 
                  Oder schon beim Eintragen umrechnen
                  danke für alle Antwort. Eventuell wer es wirklich besser gewesen alles in mm zu hinterlegen. Aber dabei hatte ich bedenken das es Später mit dem runden auf ganze Stellen zu Problemen kommen könnte.
                  Durch das mm + und ince - war es mir möglich beide werte in eine Spalte rein zu bekommen und sie auseinander halten zu können.

                  Kommentar


                  • #10
                    Zitat von DonRoberto Beitrag anzeigen
                    Aber dabei hatte ich bedenken das es Später mit dem runden auf ganze Stellen zu Problemen kommen könnte.
                    Ja, das ist ein potentielles Problem und auch wichtig zu beachten. Dein Lösungsansatz ist aber sehr "ungünstig". Wenn du sowas hast, mach daraus zwei Spalten, den Wert und die Einheit. Damit kannst du ggf. über die Einheit ein Umrechnungsfaktor rein joinen. Dieser Ansatz lässt sich auch erweitern, z.B. wenn es auf Performance ankommt oder ein Faktor alleine nicht reicht. Dann Kannst du noch eine 3te Spalte mit reinnehmen und den Wert normiert speichern, also z.B. alles in mm. Die Spalte nimmst du für die Filterung/Sortierung und den Wert und Einheit zur Darstellung.


                    Kommentar

                    Lädt...
                    X