Operatorii de comparare în MySQL Returnează 1 (true, TRUE), 0 (fals, FALSE) sau NULL (nu a înțeles). Aceste funcții de lucru pentru numerele și șiruri. Siruri de caractere sunt convertite automat la numere și numere la șiruri, dacă este necesar.
MySQL efectuează toate comparațiile folosind următoarele reguli:
- în cazul în care unul sau ambele sunt egale, NULL, rezultatul comparației este de asemenea egal cu NULL, cu excepția operatorilor;
- În cazul în care ambii parametrii dintr-o operațiune comparație sunt siruri de caractere, ele sunt comparate ca șiruri;
- În cazul în care ambii parametri sunt numere, acestea sunt comparate ca numere;
- Valorile hexazecimale sunt tratate ca șiruri binare dacă nu sunt comparate cu numărul;
- dacă unul dintre parametrii este un tip de coloană sau TIMESTAMP DATETIME, iar celălalt parametru este o constantă, aceasta va fi transformată într-un timestamp înainte de a se face comparația;
- în toate celelalte cazuri, parametrii sunt comparate în virgulă mobilă (real).
În mod implicit, comparația șir efectuată în mod independent, din registrul cu ajutorul simbolului curent setat (implicit este ISO-8859-1 Latin1, care funcționează perfect pentru limba engleză).
Exemplele de mai jos ilustrează conversia în numărul corespunzător de rânduri pentru efectuarea operațiunilor de comparare:
mysql> SELECT 1> "6x";
-> 0 mysql> SELECT 7> "6x";
-> 1 mysql> SELECT 0> "x6";
-> „0 mysql> SELECT 0 = "x6";
-> 1
mysql> select 1 = 0;
-> 0 mysql> selectați "0" = 0;
-> 1 mysql> select „0.0„= 0;
-> 1 mysql> select '0.01' = „0;
-> 0 mysql> select“.01" = 0,01;
-> 1
mysql> select“.01" <> „0.01:
-> 1 mysql> selectați .01 <> "0.01"
-> 0 mysql> select "zapp" <> "Zappp"
-> 1
Mai mic sau egal cu (mysql> select 0.1 1
Strict mai puțin (mysql> select 2 0
Mai mare sau egal cu (> =)
Strict mai mare (>):
mysql> selectați 2> 2;
-> 0
mysql> selectați 1 1, NULL NULL, NULL 1;
-> 1 1 0
IS NULL și nu este NULL.
Verifică dacă este sau nu valoarea NULL:
mysql> select 1 este nul, 0 este NULL, NULL IS NULL;
-> 0 0 1 mysql> select 1 nu este nulă, 0 este NOT NULL, NULL nu este nulă;
-> 1 1 0
expr ÎNTRE min și max.
Dacă expr este mai mare sau egal cu min, și în același timp, mai mic sau egal expr max, apoi se întoarce ÎNTRE 1, altfel returnează 0. Aceasta este echivalentă cu expresia (mysql min> selectați 1 între 3 și 2;
-> 0
mysql> select "b" între "a" și "c";
-> 1
mysql> selectați 2 2 între și "3";
-> 1
mysql> selectați 2 2 între și „x-3„;
-> 0
Returnează 1 dacă Expr este oricare dintre valorile din lista IN, altfel returnează 0. Dacă toate valorile - constante, acestea sunt evaluate în funcție de tipul de expr și sortate. Apoi, o căutare binară este făcută elementul butset. Acest lucru înseamnă că este IN foarte rapid în cazul în care lista de valori în format FITNESS® constante. Dacă expr - string insensibilă comparare șir de expresie este efectuată în considerarea registrului:
mysql> select 2 IN (0,3,5, 'wefwf');
-> 0
mysql> select "wefwf" IN (0,3,5, 'wefwf');
-> 1
expr NU IN (valoare.)
În mod similar NU (expr IN (valoare.)).
Dacă expr este NULL, isnull () returnează 1, altfel returnează 0:
mysql> select isnull (1 + 1);
-> 0
mysql> select isnull (1/0);
-> 1
Vă rugăm să rețineți că o comparație a valorilor NULL utilizând = va fi întotdeauna fals!
Returnează primul element nenul din listă:
mysql> select coaguleze (NULL, 1);
-> 1
mysql> select coaguleze (NULL, NULL, NULL);
-> NULL
Returnează 0 dacă N mysql> select INTERVAL (23, 1, 15, 17, 30, 44, 200);
-> 3
mysql> select INTERVAL (10, 1, 10, 100, 1000);
-> 2
mysql> select INTERVAL (22, 23, 30, 44, 200);
-> 0
Dacă se compară șir sensibil caz de oricare dintre operatorii standard (= <>. dar nu ca), spațiu la final vor fi ignorate.
mysql> selectați "o" = "A";
-> 1