Page 1 sur 1

inverse d'un WHERE

Posté : 23 mars 2006, 12:47
par dark_vidor
une requete avec des between :
SELECT if FROM planete WHERE coord_x BETWEEN 150 AND 450 AND coord_y BETWEEN 150 AND 450
je souhaite executer la meme sauf que le WHERE doit etre l'opposée
y'a t il une fonction pour faire le WHERE opposé ? :roll:

Posté : 23 mars 2006, 13:49
par ouckileou
Tout simplement :

Code : Tout sélectionner

SELECT if FROM planete WHERE coord_x NOT BETWEEN 150 AND 450 AND coord_y NOT BETWEEN 150 AND 450

Posté : 23 mars 2006, 14:03
par sadeq
Tout simplement :

Code : Tout sélectionner

SELECT if FROM planete WHERE coord_x NOT BETWEEN 150 AND 450 AND coord_y NOT BETWEEN 150 AND 450
Non, la négation de A ET B est NON(A) OU NON(B) selon Morgan (algèbre de bool)

si
A = coord_x BETWEEN 150 AND 450
B= coord_y BETWEEN 150 AND 450

La négation est :
NON (A) = coord_x NOT BETWEEN 150 AND 450
NON (B) = coord_y NOT BETWEEN 150 AND 450

La négation de A ET B est donc :
NON(A) OU NON(B) = coord_x NOT BETWEEN 150 AND 450 OR coord_y NOT BETWEEN 150 AND 450

Il faut écrire alors :

Code : Tout sélectionner

SELECT if FROM planete WHERE coord_x NOT BETWEEN 150 AND 450 OR coord_y NOT BETWEEN 150 AND 450
ou bien tout simplement :

Code : Tout sélectionner

SELECT if FROM planete WHERE NOT (coord_x BETWEEN 150 AND 450 AND coord_y BETWEEN 150 AND 450)
de la forme : NON (A ET B)

Posté : 23 mars 2006, 14:06
par ouckileou
Oui si tu veux moi j'ai juste rajouté le NOT pour indiquer comment nier une condition, je me suis pas préoccupé de la cohérence du truc
Non, la négation de A ET B est NON(A) OU NON(B) selon Morgan (algèbre de bool)
Après c'est à lui de voir s'il veut suivre ton théorème ou simplement prendre les valeurs qui ne sont dans aucun des deux intervalles... :)

Posté : 23 mars 2006, 14:15
par sadeq
Mais ouckileou a raison dans le cas où ça correspondrait à ce que veut notre ami. A ce moment là ce n'est pas une négation.

Posté : 23 mars 2006, 14:18
par ouckileou
On aura au moins appris un truc ;)

http://fr.wikipedia.org/wiki/Alg%C3%A8b ... logique%29

C'est beauuu... Image

0wn3dzz lol!!111!11!

Posté : 23 mars 2006, 14:25
par Hubert Roksor
Et ils sont où? et ils sont où? et ils sont où les boo-lé-en lalalala, lalalalalalaaaa :lol:

Pour le pauvre dark_vidor, qui pourrait être étranger à cette notion (à savoir, les booléens et leur logique) ton exemple cherche un point "à l'intersection de cette bande verticale et cette bande horizontale" (ce qui définit donc une zone rectangulaire), ouckileou a posté "pas sur cette bande verticale ni sur cette bande horizontale" (donc 2 zones rectangulaires superposées soit une zone en forme de croix, plus grande que l'originale) et sadeq a corrigé pour n'exclure que la zone de départ.

PS: moi aussi il a fallu que je relise deux fois et que je rebranche mon cerveau pour visualiser la différence entre NOT(a AND b) et (NOT a AND NOT b)

Posté : 23 mars 2006, 14:26
par Hubert Roksor
PPS: c'est pas cool de poster pendant que j'écris mon message :cry:

Posté : 23 mars 2006, 14:31
par ouckileou
PPS: c'est pas cool de poster pendant que j'écris mon message :cry:
Bah faut pas écrire de messages si longs aussi tsss :roll:

Un lien, trois mots et deux smileys, c'est amplement suffisant :lol:

Mais bon ton message est mieux, les gens feront la différence ;)

Posté : 23 mars 2006, 14:33
par dark_vidor
vous battez pas un petit WHERE NOT(condiontion) resouds tout :lol:

merci :wink:

je connais de Morgan et l'algebre de bool :wink:

1+1 = 1
1.1 = 1 ...