Documentație MySQL

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:

= Egali: <> != Nu este egal: <= Меньше или равно: <Меньше чем:>= Mai mare sau egal> Mai mare decât: <=> -NULL în condiții de siguranță comparație (egal): IS NULL NU este testul NULL pentru determinarea valorii este 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 SET Sintaxa comenzii.
  • 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ă data valutei 0000-00-00).
expr SI INTRE min 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 ), в котором все аргументы представлены одним и тем же типом данных. Способ выполнения сравнения определяется первым аргументом ( expr ):
  • Dacă expr este un tip de coloană TIMESTAMP. DATE sau DATETIME. și valorile MIN () și MAX () sunt constante, acestea din urmă sunt aduse la același format ca și cel al coloanei.
  • Dacă expr este o expresie string case-insensitive, atunci se face o comparație șir insensibil.
  • Dacă expr este expresie șir insensibil dependent, comparațiile șir sensibil.
  • Dacă expr este o expresie întreg, atunci compararea numerelor întregi.
  • În toate celelalte cazuri, argumentele sunt comparate ca numere reale în virgulă mobilă.
expr nu între min și Max Același lucru este valabil și pentru funcția nu (expr între MIN și MAX). expr IN (valoare.) 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 se face sensibil: (. Expr IN (valoare)) expr NOT IN (. Value) Același lucru este valabil și pentru funcția NOT. Isnull (expr) 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. Coaliza (lista) Returnează primul element din listă, cu o valoare nu este egal cu NULL. INTERVAL (N, N1, N2, N3.) Returnează 0 dacă N Dacă un registru rând dependent este comparat folosind orice operator standard (=, <>. dar nu ca), spațiul trailing este ignorat.