105

I need to do this

DELETE FROM konta WHERE taken != ''

But != doesn't exist in mysql. Anyone know how to do this?

Brian Tompsett - 汤莱恩
  • 5,438
  • 68
  • 55
  • 126
Posttwo
  • 1,234
  • 2
  • 9
  • 13

3 Answers3

164
DELETE FROM konta WHERE taken <> '';
RolandoMySQLDBA
  • 42,925
  • 15
  • 89
  • 130
44

The != operator most certainly does exist! It is an alias for the standard <> operator.

Perhaps your fields are not actually empty strings, but instead NULL?

To compare to NULL you can use IS NULL or IS NOT NULL or the null safe equals operator <=>.

Mark Byers
  • 767,688
  • 176
  • 1,542
  • 1,434
  • Eh, I can see where the `NULL` is going (+1), but it seems odd to want to delete *not empty* or NULL .. –  Jul 10 '12 at 20:57
13

You may be using old version of Mysql but surely you can use

 DELETE FROM konta WHERE taken <> ''

But there are many other options available. You can try the following ones

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

DELETE * from konta where NOT (taken = '');
minhas23
  • 8,723
  • 3
  • 56
  • 39