Operatorii de comparare avea ca rezultat o valoare de 1 (TRUE, TRUE), 0 (false, FALSE) sau NULL. Aceste funcții funcționează atât cu numere și șiruri. Rânduri după cum este necesar convertite automat în cifre și numere - în rânduri (ca în Perl).
operațiuni de comparare în MySQL efectuează următoarele reguli:
În cazul în care unul sau ambele argumente - NULL. și rezultatul comparației este NULL. Valabil pentru toți operatorii, cu excepția <=>.
Dacă ambele argumente într-un operator de comparare sunt siruri de caractere, ele sunt comparate ca șiruri.
Dacă ambele argumente - întregi, ele sunt comparate ca numere întregi.
Valorile hexazecimale dacă nu sunt comparate cu numărul sunt tratate ca un șir binar.
Dacă unul dintre argumente este un tip de coloană sau DATETIME TIMESTAMP. iar al doilea argument - o constantă, constanta înaintea comparației este convertit la tipul TIMESTAMP. Acest lucru se face pentru o mai bună compatibilitate cu ODBC.
În toate celelalte cazuri, argumentele sunt comparate ca un număr în virgulă mobilă valide.
În mod implicit, comparații șir sunt sensibile la majuscule, folosind setul de caractere curent (pentru implicit ISO-8859-1 Latin1, care, de altfel, este perfect potrivită pentru limba engleză).
Următoarele exemple ilustrează conversia șirurilor de numere pentru operatorii de comparație:
IS NULL. NU ESTE NULL
Testul pentru determinarea valorii egală cu NULL sau nu:
Pentru MySQL pentru a lucra bine cu alte programe, cu condiția ca suport pentru următoarele caracteristici suplimentare pentru funcția IS NULL.
Puteți găsi ultimul rând inserat cu expresia:
Această caracteristică poate fi blocat prin instalarea SQL_AUTO_IS_NULL = 0. A se vedea secțiunea 5.5.6, „Sintaxa SET».
Pentru tipul de date nu DATA NULL și coloane DATETIME puteți găsi data specială 0000-00-00. folosind expresia:
Este necesar pentru activitatea unor aplicații ODBC (deoarece ODBC nu suportă valoarea data 0000-00-00).
expr ÎNTRE min ȘI max
Dacă valoarea expresiei expr mai mare sau egală cu o valoare predeterminată min și mai mică sau egală cu o valoare predeterminată de max. atunci funcția returnează 1. ÎNTRE altfel - 0. Aceasta este echivalentă cu expresia (min <= expr AND expr <= max ), в котором все аргументы представлены одним и тем же типом данных. В противном случае имеет место быть преобразование типов так, как сказано выше, но применительно ко всем трем аргументами. Внимание: до 4.0.5 аргументы приводились к типу expr.
expr nu între min și max
Același lucru este valabil și pentru funcția NU (expr ÎNTRE min și max).
Returnează 1 dacă expr este egală cu orice valoare dintr-o listă IN. în caz contrar - 0. Dacă toate valorile - constante, acestea sunt evaluate în funcție de tipul de expr și sortate. Căutați un element în acest caz, este produs printr-o căutare logică. Acest lucru înseamnă că în funcțiune este foarte rapid, în cazul în care lista de valori IN constă în întregime din constante. Dacă expr este o expresie string-sensitive, comparația șir este făcută sensibilă:
Pornind de la 4,1 (în conformitate cu standardul SQL-99), IN returnează NULL nu numai în cazul în care expresia de pe partea stângă este NULL. dar, de asemenea, în cazul în care nici un meci a fost găsit în listă, și una dintre expresiile din listă este o valoare NULL.
expr NU IN (valoare.)
Același lucru este valabil și pentru funcția NU (expr IN (valoare.)).
Dacă expr este egal cu NULL. isnull () returnează 1. În caz contrar - 0.
Notă: atunci când se compară valorile NULL utilizând = operatorul va reveni întotdeauna FALSE.
Returnează primul element din listă, cu o valoare nu este egal cu NULL.
Returnează 0 dacă N Dacă un șir de caractere insensibilă la majuscule compară cu orice operator standard de (= <>. dar nu și altele asemenea), adulmecarea caracterele nule (adică, spații, taburi și linii noi) este ignorată: ignorată.articole similare