Page 1 sur 1

delete multiple avec conditions !=

Posté : 11 avr. 2011, 12:02
par foetus69
Bonjour,

J'aimerai connaître la syntaxe exacte pour utiliser le OR et le !=

Exemple :
Il faut que je supprime ou sélectionne tous les enregistrements de ma table sauf ceux qui ont l'id 4,8,20,52,75.

J'aurai tendance à faire :
SELECT * FROM `clients` WHERE (`id` != 4 OR `id` != 8 OR `id` != 20 OR `id` != 52 OR `id` != 75);
Le résultat ne me renvoie pas d'erreur mais m'affiche l'intégralité des enregistrements.

J'ai essayé de retirer les quotes, d'en rajouter mais rien n'y fait.

Je ne dois pas être très loin ?

Merci par avance de votre aide.

Bien à vous.

Féfé

Re: delete multiple avec conditions !=

Posté : 11 avr. 2011, 12:27
par misterflo
Salut,
la tu ne supprime pas les données, tu les affiches (SELECT *).
Pour les supprimer c'est un DELETE FROM.
Dans ton cas si tu veux supprimer toutes les infos sauf celles avec l'id = 4 etc etc il faudrait faire des AND et non des OR !!!!
DELETE FROM clients WHERE (id!=4 AND id!=8 AND id!=20 AND id!=52 AND id!=52 AND id!=75);
Avant d'effectuer ce genre de requête, il est préférable de sauvegarder les données de sa bdd !!

Re: delete multiple avec conditions !=

Posté : 11 avr. 2011, 12:34
par foetus69
Bonjour,

Pas de souci avec les select et les delete et j'ai déjà sauvegardé ma base avant de faire des bêtises :)

Effectivement c'est beaucoup mieux avec les AND ^^

Du coup dans quel cas utilise t-on les OR ?

En tout cas merci, c'est résolu !

:pouce:

Re: delete multiple avec conditions !=

Posté : 12 avr. 2011, 13:55
par Mazarini
Bonjour,

Les AND quand on veut que toutes les conditions soient vraies
Les OR quand on veut qu'une condition au moins soit vraie

Dans ton cas `id` != 4 OR `id` != 8 est toujours vrai puisque par exemple si id = 4 alors id != 8

Re: delete multiple avec conditions !=

Posté : 13 avr. 2011, 15:31
par foetus69
Bonjour,

C'est pas faux :merci:

@+