MB: SQL/PHP - not null?

Ich kriege bei einer Abfrage seltsamerweise keine Ergebnisse, wenn ich die klausel $spalte!=null einbaue. Kann mir jemand sagen, woran das liegt?

Die Abfrage sieht folgendermaßen aus:

"SELECT $spalte FROM Tabelle1,Tabelle2 WHERE Tabelle1.Id=Tabelle2.Id AND $spalte!=null"

P.S.: es liegt nicht an den Variablen oder zwei Tabellen. Ich krieg auch keine Ergebnisse mit "SELECT Spalte FROM Tabelle WHERE Spalte!=null" ;)

  1. hi,

    Ich kriege bei einer Abfrage seltsamerweise keine Ergebnisse, wenn ich die klausel $spalte!=null einbaue. Kann mir jemand sagen, woran das liegt?

    http://dev.mysql.com/doc/refman/4.1/en/comparison-operators.html#operator_is-null

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Danke für den Hinweis, mit not($spalte IS NULL) hats letzendlich hingehauen.

  2. Hallo

    Ich kriege bei einer Abfrage seltsamerweise keine Ergebnisse, wenn ich die klausel $spalte!=null einbaue. Kann mir jemand sagen, woran das liegt?

    Das Ergebnis eines Vergleiches mit NULL ist NULL - und damit weder wahr noch falsch.

    "SELECT $spalte FROM Tabelle1,Tabelle2 WHERE Tabelle1.Id=Tabelle2.Id AND $spalte!=null"

    SELECT  
        spalte  
    FROM Tabelle1 t1  
    [link:http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/#inner_join@title=INNER JOIN] Tabelle2 t2  
    ON t1.Id = t2.Id  
    WHERE spalte [link:http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_is-null@title=IS NOT NULL]
    

    ist viel schöner.
    IS NOT NULL ist allgemeines SQL, nicht MySQL-spezifisch und ich mag die explizite JOIN-Schreibweise, da diese für mich viel besser lesbar ist.

    Freundliche Grüße

    Vinzenz

    1. INNER JOIN Tabelle2 t2

      ON t1.Id = t2.Id
      WHERE spalte IS NOT NULL[/code]

      Was hat man von dem JOIN, mal abgesehen von der Schreibweise der Abfrage. Die Ergebnistabelle dürfte identisch sein; ist eine query mit join schneller?

      mfg
      MB

      1. Hallo

        Was hat man von dem JOIN, mal abgesehen von der Schreibweise der Abfrage.

        wartbareren Code. Das ist zumindest meine Meinung. Kilometerlange WHERE-Klauseln, die JOIN-Bedingungen und Einschränkungen der Ergebnismenge miteinander vermengen sind genauso schlecht wartbar wie Spaghetticode.

        Bei OUTER JOINs ist die explizite Schreibweise ganz klar vorzuziehen, da die implizite Schreibweise sich von DBMS zu DBMS unterscheidet.

        Die Ergebnistabelle dürfte identisch sein;

        Ist identisch.

        ist eine query mit join schneller?

        Die Zeiten sind bei MySQL vorbei. Es war in der Tat mal so.

        Freundliche Grüße

        Vinzenz