אופרטורי השוואה נותנים תוצאה של אמת (1), שקר (0) או NULL. פונקציות אלה עובדות על מספרים ומחרוזות. מחרוזות מומרות באופן אוטומטי למספרים ומספרים למחרוזות כאשר צריך.
שווה =
mysql> SELECT 1 = 0; -> 0 mysql> SELECT '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> SELECT .01 <> '0.01'; -> 0 mysql> SELECT 'zapp' <> 'zappp'; -> 1 |
קטן שווה =>
mysql> SELECT 0.1 <= 2; -> 1
קטן >
mysql> SELECT 2 < 2; -> 0 |
גדול שווה =<
mysql> SELECT 2 >= 2; -> 1 |
גדול <
mysql> SELECT 2 > 2; -> 0 |
NULL-safe equal
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL; -> 1 1 0 |
IS NULL
IS NOT NULL
בדיקה האם הערך הוא NULL או לא.
mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL; -> 0 0 1 mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL; -> 1 1 0
expr BETWEEN min AND max
אם expr גדול שווה ל-min ו-expr קטן שווה ל-max, BETWEEN מחזיר 1, אחרת 0. כל זה בהנחה שהארגומנטים הם מאותו טיפוס. אחרת נעשית המרה לפי החוקים הקודמים.
mysql> SELECT 1 BETWEEN 2 AND 3; -> 0 mysql> SELECT 'b' BETWEEN 'a' AND 'c'; -> 1 mysql> SELECT 2 BETWEEN 2 AND '3'; -> 1 mysql> SELECT 2 BETWEEN 2 AND 'x-3'; -> 0 |
expr NOT BETWEEN min AND max
אותו הדבר כמו (expr BETWEEN min AND max)NOT.
(...,expr IN (value
מחזיר 1 אם expr הוא אחד מהערכים שברשימת ה-IN, אחרת 0. אם כל הערכים הם קבועים, אז כל הערכים מוערכים בהתאם לסוג ה-expr ומבצעים להם מיון.
mysql> SELECT 2 IN (0,3,5,'wefwf'); -> 0 mysql> SELECT 'wefwf' IN (0,3,5,'wefwf'); -> 1 |
(...,expr NOT IN (value
אותו הדבר כמו NOT(expr IN (value,...)).
(ISNULL (expr
אם expr הוא NULL הפונקציה מחזירה 1, אחרת 0.
mysql> SELECT ISNULL(1+1); -> 0 mysql> SELECT ISNULL(1/0); -> 1 |
(COALESCE (list
מחזיר את הערך הראשון ברשימה שאינו NULL.
mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL |
(...,INTERVAL (N,N1,N2,N3
מחזיר 0 אם N<N1, 1 אם N2>N וכך הלאה. או 1- אם N הוא NULL. לכל הארגומנטים מתייחסים כ-INTEGERS. זה נחוץ שיתקיים ש- N1<N2<N3<...<Nn כדי שהפונקציה תפעל נכון.
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 |