MySQL WHERE: comment écrire "! =" Ou "not equals"?

93

Je dois le faire

DELETE FROM konta WHERE taken != ''

Mais! = N'existe pas dans mysql. Quelqu'un sait-il comment faire ça?

Posttwo
la source
1
@DanielKamilKozar Je ne savais pas que je devais profiler l'individu avant de répondre aux questions.
Kermit du

Réponses:

145
DELETE FROM konta WHERE taken <> '';
RolandoMySQLDBA
la source
36

L' opérateur! = Existe certainement! C'est un alias pour l' <>opérateur standard .

Peut-être que vos champs ne sont pas réellement des chaînes vides, mais plutôt NULL?

Pour comparer à, NULLvous pouvez utiliser IS NULLou IS NOT NULLou l' opérateur null safe equals<=> .

Mark Byers
la source
Eh, je peux voir où NULLva (+1), mais il semble étrange de vouloir supprimer pas vide ou NULL ..
11

Vous utilisez peut-être une ancienne version de Mysql mais vous pouvez sûrement utiliser

 DELETE FROM konta WHERE taken <> ''

Mais il existe de nombreuses autres options disponibles. Vous pouvez essayer les suivants

DELETE * from konta WHERE strcmp(taken, '') <> 0;

DELETE * from konta where NOT (taken = '');
minhas23
la source