Where != Bedingung???

Wolfsbein

Erfahrenes Mitglied
Mache folgende Abfrage:
Code:
$mysql_query="SELECT LNAME, FNAME, EMAIL FROM TABELLE ";
$mysql_query.="WHERE SPALTE LIKE '%GKd%'";
Das haut hin. Ich möchte aber genau das Gegenteil haben, sprich alle Ergebnisse, wo nicht GKd enthalten ist.
Code:
$mysql_query="SELECT LNAME, FNAME, EMAIL FROM STUDENTS ";
$mysql_query.="WHERE COURSES != LIKE '%GKd%'";
Habe das ganze schon variert und mit Klammern geschrieben, hat aber nicht hingehauen. Wie muss ich das schreiben?
 
Du musst hier unterscheiden zwischen SQL-Befehlen und PHP-Befehlen !!!

bei PHP geht sowas:

if ($feld != 0) - wird dann true, wenn der Inhalt von $feld ungleich 0 ist.

bei SQL geht das nicht !!! hier musst Du das "NOT LIKE" verwenden.

Gruß
Dunsti
 
Ist mir klar. Aber auf S.364 steht: MySQL kennt folgende Operatoren:
=. Gleich
<>, !=. Ungleich ...
Ist halt dann ein Fehler im Buch, oder was?
 
hmm ... hab das noch nie so verwendet, aber logisch gedacht muss bei Verwendung von != auf alle Fälle das LIKE weg !!! (beides sind Vergleichsoperatoren, und davin darf nur einer da sein)

$mysql_query="SELECT LNAME, FNAME, EMAIL FROM STUDENTS ";
$mysql_query.="WHERE COURSES != '%GKd%'";

ohne das LIKE geht allerdings das % als Platzhalter net mehr.

also wirst Du in dem Fall wohl das NOT LIKE nehmen müssen. ;)

Gruß
Dunsti
 
Re: Where != Bedingung?

Das ist so nicht ganz korrekt!
Wenn Du "WHERE Name='redlama'" in einem Statement stehen hast, dann bekommst Du auch ein Ergebnis, obwohl "redlama" meines Erachtens nach ein String ist und keine Zahl, ...

redlama
 
Re: Where != Bedingung?

Die Operatoren != und = werden verwendet um "genau" zu vergleichen, bei Like und Not Like sind hingegen auch Wildcards (% , _ ) erlaubt.
Das ist der wesentliche Unterschied zwischen den beiden Vergleichsmöglichkeiten.
 
Zurück