delete multiple avec conditions !=

Eléphant du PHP | 363 Messages

11 avr. 2011, 12:02

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é
Dis-donc fossoyeur, t'as une dent contre moi ou quoi ?

Eléphant du PHP | 241 Messages

11 avr. 2011, 12:27

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 !!

Eléphant du PHP | 363 Messages

11 avr. 2011, 12:34

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:
Dis-donc fossoyeur, t'as une dent contre moi ou quoi ?

ViPHP
ViPHP | 2577 Messages

12 avr. 2011, 13:55

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

Eléphant du PHP | 363 Messages

13 avr. 2011, 15:31

Bonjour,

C'est pas faux :merci:

@+
Dis-donc fossoyeur, t'as une dent contre moi ou quoi ?