Leere Strings in MySQL Anfrage Aussortieren

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

  • Leere Strings in MySQL Anfrage Aussortieren

    Hallo Zusammen,

    Ich möchte in einer Datenbankabfrage nur Datensätze berücksichtigen bei denen ein Tabellenfeld nicht leer ist. Das ganz hört sich ja einfach an, aber irgendwie bekomme ich es nicht hin.

    Das Feld hat den Typ tinytext. Wenn ich nun
    Code:
    SELECT * FROM tabelle WHERE feld != ''
    ausführe, werden mir die leeren Felder immer noch angezeigt auch ein
    Code:
    SELECT * FROM tabelle WHERE TRIM(feld) != ''
    führt zum selben Ergebnis.

    phpMyAdmin zeigt mir leere Felder, auch wenn ich Datensatz bearbeiten, werden keine Leerzeichen im Feld angezeigt. Kann es vielleicht sein, dass die Felder Zeichenenthalten die ich in phpMyAdmin nicht sehe (falls ja wie bekomme ich das raus).

    Schon mal vielen Dank für eure Mühen.
    Wissen ist Macht
    Power is nothing without control

  • #2
    http://dev.mysql.com/doc/refman/5.0/en/null-values.html
    http://dev.mysql.com/doc/refman/5.0/...with-null.html

    Kommentar


    • #3
      ok, ich vergaß zu erwähnen, das Feld ist auch nicht NULL.
      Wissen ist Macht
      Power is nothing without control

      Kommentar


      • #4
        Wie hast du verifiziert, dass wirklich nichts drinsteht?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Leider nur über phpMyAdmin (wie auch oben geschrieben). Es wird nichts in der Übersichtsansicht angezeigt und im Bearbeitenfenster ist es auch nicht möglich den Cursor zu bewegen.
          Falls jemand eine Besser möglichkeit kennt, immer raus damit.
          Wissen ist Macht
          Power is nothing without control

          Kommentar


          • #6
            Re: Leere Strings in MySQL Anfrage Aussortieren

            Original geschrieben von Mr.Programe

            Code:
            SELECT * FROM tabelle WHERE feld != ''
            Probier mal

            Code:
            SELECT * FROM tabelle WHERE NOT feld = ''
            PHP-Code:
            function verrecke_elend()
            {
                die(
            'Aaargh!');

            Kommentar


            • #7
              Wie wäre es mit LENGTH (mysql-Funktion)?

              SELECT spalte, LENGTH(spalte)
              FROM tabelle
              ORDER BY LENGTH(spalte)
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Also...

                Natürlich kann ich mich irren, aber meines Wissens wird in nem sql query ein ungleich durch <> ausgedrückt.

                dann Sollte

                Code:
                SELECT * FROM tabelle WHERE feld <> ''
                durchaus funktionieren

                Kommentar


                • #9
                  Du irrst dich, != und <> sind Synonyme. Siehe http://dev.mysql.com/doc/refman/5.0/...operators.html

                  Kommentar


                  • #10
                    Vielen Dank man lernt ja nie aus.

                    Kommentar


                    • #11
                      hmm, ich hab die Anfrage jetzt komplett umgebaut so dass ich nicht mehr prüfen muss ob das Feld leer ist. D.h. es handelt sich nicht mehr um ein akutes Problem.

                      Bei der length + ORDER BY Lösung, würden die einträge ja immer noch angezeigt und da die gesamte Abfrage über vier Tabellen geht würde mich das wohl nicht weiter bringen.

                      Trotzdem vielen Dank euch allen. Falls jemand noch eine Idee hat warum die Felder angezeigt werden, würde mich dass aber doch noch interessieren.
                      Wissen ist Macht
                      Power is nothing without control

                      Kommentar


                      • #12
                        Original geschrieben von Mr.Programe
                        Falls jemand noch eine Idee hat warum die Felder angezeigt werden, würde mich dass aber doch noch interessieren.
                        kürzlich war hier einer mit unicode nonbreaking space, hex 0xA0. = 160. Ich würde mal `feld` mit bin2hex ausgeben, auf Zeichen >128 <32 oder direkt auf =160 abfragen. Für den Selekt - du weisst ja schon welche ID verdächtig sind. edit: Und wenn Du schon am Testcode-schreiben bist, auch "ISNULL(`feld`) AS istnull" im select mitnehmen..
                        Zuletzt geändert von tcpip; 22.06.2006, 13:20.

                        Kommentar

                        Lädt...
                        X