web-dev-qa-db-fra.com

MySQL WHERE: comment écrire "! =" Ou "pas égal"?

Je dois le faire

DELETE FROM konta WHERE taken != ''

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

70
Posttwo
DELETE FROM konta WHERE taken <> '';
112
RolandoMySQLDBA

Le ! = Opérateur existe certainement! C'est un alias pour le standard <> _ opérateur.

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

Pour comparer à NULL, vous pouvez utiliser IS NULL ou IS NOT NULL ou le null safe égal à l'opérateur <=> .

29
Mark Byers

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

 DELETE FROM konta WHERE taken <> ''

Mais il y a beaucoup d'autres options disponibles. Vous pouvez essayer les suivants

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

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