2017-06-23 4 views

Antwort

2

Sie verwenden nur update mit einer where Klausel:

update t 
    set col = -1 
    where col is not null and col <> 0; 

Wenn Sie meinen, "Abnahme", anstatt auf -1 gesetzt, dann set col = col - 1 verwenden.

+0

Ich denke die Werte von 'col' wären unsigned, also wäre' WHERE col> 0' logischer ... –

+0

Ich sagte "Ich denke die Werte von' col' wären unsigned "... –

+0

@GordonLinoff Die 'Where'-Klausel macht keinen Sinn. Wenn 'col <> 0 ', kann es nicht null sein, weil' null 'nicht gleich oder nicht gleich sein kann. Also bedeutet 'col <> 0 'automatisch, dass' col ist nicht null ' – leftjoin

0

Sie können diese Bedingungen in der where-Klausel verwenden:

  • Spalte nicht NULL
  • Spalte ist nicht Null

Etwas wie:

Update <table-name> SET column = -1 where column!=0 and column is not NULL 
0

Sie verwenden können wie dieses

update `table_name` 
    set `field_name` = `field_name`-1 
    where `field_name` is not null and `field_name` != 0; 
1

Fügen Sie einfach eine where Klausel mit <> 0 Bedingung filtert

update Yourtable 
    set col = -1 
    where col <> 0; 

Where col <> 0 die NULL Werte, so dass wir es nur überflüssig ist diese Voraussetzung nicht brauchen.

+1

Sie haben richtig darauf hingewiesen, dass' Where col <> 0 'die' NULL' Werte ausfiltert. Andere haben das vermisst. – leftjoin

Verwandte Themen