English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operatori MySQL

In questa sezione, introduciamo gli operatori e la priorità degli operatori in MySQL. MySQL ha principalmente i seguenti tipi di operatori:

  • Operatore aritmetico

  • operatori di confronto

  • |                     0 |

  • Operatori di bitwise

Operatore aritmetico

Gli operatori aritmetici supportati da MySQL includono:

OperatoreFunzione
+Addizione
-Sottrazione
*Moltiplicazione
/ o DIVDivisione
% o MODResto

In operazioni di divisione e modulo, se il divisore è 0, sarà un divisore non legale, il risultato sarà NULL.

1、加

mysql> select 1+2;
+-----+
| 1+2 |
+-----+
|   3 |
+-----+

2、减

mysql> select 1-2;
+-----+
| 1-2 |
+-----+
|  -1 |
+-----+

3、乘

mysql> select 2*3;
+-----+
| 2*3 |
+-----+
|     6     |
+-----+

4、divisione

mysql> select 2/3;
+--------+
| 2/3                 |
+--------+
| 0.6667 |
+--------+

5、quoziente

mysql> select 10 DIV 4;
+----------+
| 10 DIV 4 |
+----------+
|                         2 |
+----------+

6、modulo

mysql> select 10 MOD 4;
+----------+
| 10 MOD 4 |
+----------+
|                         2 |
+----------+

operatori di confronto

Le espressioni condizionali nella clausola SELECT spesso devono utilizzare gli operatori di confronto. Attraverso questi operatori di confronto, è possibile determinare quali record della tabella soddisfano i criteri. Se il risultato del confronto è vero, viene restituito 1; se è falso, viene restituito 0; se il risultato del confronto è incerto, viene restituito NULL.

simbolodescrizionenote
=uguale
<>, !=uguale a
>maggiore
<minore
<=minore o uguale
>=maggiore o uguale
BETWEENtra i due valori>=min && <=max
NOT BETWEENnon tra i due valori
INnel set
NOT INnon nel set
<=>confronto rigoroso di due valori NULLQuando entrambi gli operandi sono NULL, il valore restituito è 1; mentre se uno degli operandi è NULL, il valore restituito è 0.
LIKEcorrispondenza vaga
REGEXP o RLIKEcorrispondenza di espressione regolare
IS NULLvuoto
IS NOT NULLnon vuoto

1、uguale

mysql> select 2=3;
+-----+
| 2=3 |
+-----+
|                      0                      |
+-----+
mysql> select NULL = NULL;
+-------------+
| NULL = NULL |
+-------------+
|                                 NULL |
+-------------+

2、uguale a

mysql> select 2<>3;
+------+
| 2<>3 |
+------+
|     1     |
+------+

3、uguale sicuro

La differenza tra = e <=> è che quando entrambi gli operandi sono NULL, il valore restituito è 1 e non NULL, mentre se uno degli operandi è NULL, il valore restituito è 0 e non NULL.

mysql> select 2<=>3;
+-------+
| 2<=>3 |
+-------+
|     0 |
+-------+
mysql> select null=null;
+-----------+
| null=null |
+-----------+
|                     NULL |
+-----------+
        
mysql> select null<=>null;
+-------------+
| null<=>null |
+-------------+
|                                 1 |
+-------------+

4、minore

mysql> select 2<3;
+-----+
| 2<3 |
+-----+
|     1     |
+-----+

5、minore o uguale

mysql> select 2<=3;
+------+
| 2<=3 |
+------+
|     1     |
+------+

6、maggiore

mysql> select 2>3;
+-----+
| 2>3 |
+-----+
|                      0                      |
+-----+

7、greater than or equal to

mysql> select 2>=3;
+------+
| 2>=3 |
+------+
|                      0                      |
+------+

8、BETWEEN

mysql> select 5 between 1 and 10;
+--------------------+
| 5 between 1 and 10 |
+--------------------+
|                      1                      |
+--------------------+

9、IN

mysql> select 5 in (1,2,3,4,5);
+------------------+
| 5 in (1,2,3,4,5) |
+------------------+
|                                                  1                                          |
+------------------+

10、NOT IN

mysql> select 5 not in (1,2,3,4,5);
+----------------------+
| 5 not in (1,2,3,4,5) |
+----------------------+
|                                                  0                                          |
+----------------------+

11、IS NULL

mysql> select null is NULL;
+--------------+
| null is NULL |
+--------------+
|                      1                      |
+--------------+
mysql> select 'a' is NULL;
+-------------+
| 'a' is NULL |
+-------------+
|                      0                      |
+-------------+

12、IS NOT NULL

mysql> select null IS NOT NULL;
+------------------+
| null IS NOT NULL |
+------------------+
|                      0                      |
+------------------+
        
mysql> select 'a' IS NOT NULL;
+-----------------+
| 'a' IS NOT NULL |
+-----------------+
|                      1                      |
+-----------------+

13、LIKE

mysql> select '12345' like '12%';
+--------------------+
| '12345' like '12%' |
+--------------------+
|                      1                      |
+--------------------+
mysql> select '12345' like '12_';
+--------------------+
| '12345' like '12_' |
+--------------------+
|                      0                      |
+--------------------+

14、REGEXP

mysql> select 'beijing' REGEXP 'jing';
|                     1 |
| 'beijing' REGEXP 'jing' |
|                     1 |
| 'beijing' REGEXP 'jing' |
|                     1 |
+-------------------------+
+-----------------------+
mysql> select 'beijing' REGEXP 'xi';
+-----------------------+
| 'beijing' REGEXP 'xi' |
+-----------------------+

|                     0 |

Gli operatori di logica

Simbolo di operazioneFunzione
Gli operatori di logica vengono utilizzati per determinare la veridicità o la falsità di un'espressione. Se l'espressione è vera, il risultato restituisce 1. Se l'espressione è falsa, il risultato restituisce 0.NOT logico o !
ANDAND logico
OROR logico
XORXOR logico

1、AND

mysql> select 2 and 0;
+---------+
| 2 and 0 |
+---------+
|       0 |
+---------+
        
mysql> select 2 and 1;   
+---------+     
| 2 and 1 |      
+---------+      
|       1 |      
+---------+

2、OR

mysql> select 2 or 0;
+--------+
| 2 or 0 |
+--------+
|      1 |
+--------+
mysql> select 2 or 1;
+--------+
| 2 or 1 |
+--------+
|      1 |
+--------+
mysql> select 0 or 0;
+--------+
| 0 or 0 |
+--------+
|      0 |
+--------+
mysql> select 1 || 0;
+--------+
| 1 || 0 |
+--------+
|      1 |
+--------+

3、NOT

mysql> select not 1;
+-------+
| not 1 |
+-------+
|     0 |
+-------+
mysql> select !0;
+----+
| !0 |
+----+
|  1 |
+----+

4、XOR

mysql> select 1 xor 1;
+---------+
| 1 xor 1 |
+---------+
|       0 |
+---------+
mysql> select 0 xor 0;
+---------+
| 0 xor 0 |
+---------+
|       0 |
+---------+
mysql> select 1 xor 0;
+---------+
| 1 xor 0 |
+---------+
|       1 |
+---------+
mysql> select null or 1;
+-----------+
| null or 1 |
+-----------+
|         1 |
+-----------+
mysql> select 1 ^ 0;
+-------+
| 1 ^ 0 |
+-------+
|     1 |
+-------+

Operatori di bitwise

Gli operatori di bitwise sono operatori che eseguono calcoli sui numeri binari. La calcolo bitwise prevede di convertire i numeri operanti in numeri binari, eseguire l'operazione bitwise e poi convertire il risultato dal numero binario al numero decimale.

Simbolo di operazioneFunzione
&AND di bit
|OR di bit
^XOR di bit
!Inversione
<<Spostamento a sinistra
>>Spostamento a destra

1, AND di bit

mysql> select 3&5;
+-----+
| 3&5 |
+-----+
|     1     |
+-----+

2, OR di bit

mysql> select 3|5;
+-----+
| 3|5 |
+-----+
|     7     |
+-----+

3, XOR di bit

mysql> select 3^5;
+-----+
| 3^5 |
+-----+
|     6     |
+-----+

4, Inversione di bit

mysql> select ~18446744073709551612;
+-----------------------+
| ~18446744073709551612 |
+-----------------------+
|                                                                         3         |
+-----------------------+

5, Spostamento a destra di bit

mysql> select 3>>1;
+------+
| 3>>1 |
+------+
|     1     |
+------+

6, Spostamento a sinistra di bit

mysql> select 3<<1;
+------+
| 3<<1 |
+------+
|     6     |
+------+

Priorità degli operatori

Priorità minima: :=.

Priorità massima: !, BINARY, COLLATE.