mysql8 null轉0 處理 NULL 值

2021-10-19 06:00:36 字數 1308 閱讀 4836

#### 3.3.4.6 處理 null 值

在你習慣之前, `null` 值可能會讓你感到驚訝. 從概念上講, `null` 意味著「丟失的未知值」, 它的處理方法與其他值有些不同.

對 `null` 進行測試, 使用 [`is null`]( 和 [`is not null`]( 操作符, 如下所示:

```sql

mysql> select 1 is null, 1 is not null;

| 1 is null | 1 is not null |

| 0 | 1 |

不能使用算術比較運算子, 比如 [`=`]( [``]( 來測試 `null`. 演示這個, 嘗試以下查詢:

```sql

mysql> select 1 = null, 1 <> null, 1 < null, 1 > null;

| 1 = null | 1 <> null | 1 < null | 1 > null |

| null | null | null | null |

因為任何與 `null` 的算術運算子比較的結果也是 `null`, 所以你不能從這樣的比較中獲得任何有意義的結果.

在 mysql 中, `0` 或者 `null` 是 false 並且其他任何值都是 true. 布林運算預設真值為 `1`.

`null` 的特殊處理就是為什麼在前一節中, 必須使用 `death is not null` 而不是 `death <> null` 來確定哪些動物已經死亡.

在 `group by` 中, 兩個 `null` 值就被認為是相等的.

當執行 `order by` 時, 如果你執行 `order by ... asc`, `null` 值將排在首位, 如果你執行 `order by ... desc` 將排在末尾.

在處理 `null` 值是, 乙個常見的錯誤是假設不可能將 0 或者空值插入到定義為 `not null` 的列中, 但事實並非如此. 它們實際上是值, 而 `null` 的意思是 「沒有值」. 你可以使用 `is not null` 很容易進行測試, 如下所示:

```sql

mysql> select 0 is null, 0 is not null, '' is null, '' is not null;

| 0 is null | 0 is not null | '' is null | '' is not null |

| 0 | 1 | 0 | 1 |

因此完全有可能將0或者空字串插入到 `not null` 列中, 因為這些列實際上是 `not null`. 參閱 [`section b.4.4.3, 「null 值得問題」`](

mysql將null轉代為0

1 如果為空返回0 select ifnull null,0 應用情景,如果在進行右連線或者左連線時,有一些為空的字段,可以進行這樣的處理。select ifnull b.submission time a.submission time 0 from a right join b on 條件。2 ...

0x02 處理視窗關閉

開始之前先建立個分支,git checkout b events 讓視窗一直顯示很好辦,在原先 基礎上,通過乙個死迴圈就能解決.use sdl2 pixels color fnmain 複製 rust 有乙個loop的迴圈方式,running可以不用理會只是個生命週期標記.現在這個程式所處的狀態算不...

lua用UTF 8處理漢字

lua用utf 8處理漢字 utf8的編碼規則 1.字元的第乙個位元組範圍 0x00 0x7f 0 127 或者 0xc2 0xf4 194 244 utf8 是相容 ascii 的,所以 0 127 就和 ascii 完全一致 2.0xc0,0xc1,0xf5 0xff 192,193 和 245...