top
Loading...
12.1.4.邏輯操作符
12.1.4. 邏輯操作符

SQL中,所有邏輯 操作符的求值所得結果均為 TRUEFALSE NULL (UNKNOWN)。在 MySQL中,它們體現為  1 (TRUE) 0 (FALSE) NULL。其大多數都與不同的數據庫SQL通用,然而一些服務器對TRUE的返回值可能是任意一個非零值。

  • NOT !

邏輯 NOT。當操作數為0 時,所得值為 1 ;當操作數為非零值時,所得值為  0 ,而當操作數為NOT NULL時,所得的返回值為 NULL

mysql> SELECT NOT 10;

        -> 0

mysql> SELECT NOT 0;

        -> 1

mysql> SELECT NOT NULL;

        -> NULL

mysql> SELECT ! (1+1);

        -> 0

mysql> SELECT ! 1+1;

        -> 1

最后一個例子產生的結果為 1,原因是表達式的計算方式和(!1)+1相同。

  • AND &&

邏輯AND。當所有操作數均為非零值、并且不為NULL時,計算所得結果為  1 ,當一個或多個操作數為0 時,所得結果為 0 ,其余情況返回值為 NULL

mysql> SELECT 1 && 1;

        -> 1

mysql> SELECT 1 && 0;

        -> 0

mysql> SELECT 1 && NULL;

        -> NULL

mysql> SELECT 0 && NULL;

        -> 0

mysql> SELECT NULL && 0;

        -> 0

  • OR ||

邏輯 OR。當兩個操作數均為非 NULL值時,如有任意一個操作數為非零值,則結果為1,否則結果為0。當有一個操作數為NULL時,如另一個操作數為非零值,則結果為1,否則結果為 NULL 。假如兩個操作數均為  NULL,則所得結果為 NULL

mysql> SELECT 1 || 1;

        -> 1

mysql> SELECT 1 || 0;

        -> 1

mysql> SELECT 0 || 0;

        -> 0

mysql> SELECT 0 || NULL;

        -> NULL

mysql> SELECT 1 || NULL;

        -> 1

  • XOR

邏輯XOR。當任意一個操作數為 NULL時,返回值為NULL。對于非   NULL 的操作數,假如一個奇數操作數為非零值,則計算所得結果為  1 ,否則為  0

mysql> SELECT 1 XOR 1;

        -> 0

mysql> SELECT 1 XOR 0;

        -> 1

mysql> SELECT 1 XOR NULL;

        -> NULL

mysql> SELECT 1 XOR 1 XOR 1;

        -> 1

a XOR b 的計算等同于  (a AND (NOT b)) OR ((NOT a) b)

同樣見 12.1.1節,“操作符優先級”

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/functions.html
北斗有巢氏 有巢氏北斗