运算符
LEAST 和 GREATEST 运算符
-
LEAST(值1,值2,值3,...,值n),返回最小值;如果其中含有NULL,则返回NULL;
-
GREATEST(值1,值2,值3,...,值n),返回最大值;如果其中含有NULL,则返回NULL;
SELECT LEAST(1,2,3,4,5,6), GREATEST(1,2,4,100);
IN / NOT IN 运算符
一般情况下,IN / NOT IN返回1或者0
SELECT 2 IN (1,3,5,'thks'), 10 IN (1,3,NULL,'thks');
| 2 NOT IN (1,3,5,'thks') | 'thks' NOT IN (1,3,5,'thks') |
|---|---|
| 1 | 0 |
在左侧表达式为NULL的情况下,或是表中找不到匹配项并且表中一个表达式为NULL的情况下,IN的返回值均为NULL。
SELECT NULL IN (1,3,5,'thks'), 10 IN (1,3,NULL,'thks');
| NULL IN (1,3,5,'thks') | 10 IN (1,3,NULL,'thks') |
|---|---|
| NULL | NULL |
BETWEEN AND 运算符
expr BETWEEN min AND max: expr大于等于min,小于等于max,则BETWEEN的返回值返回1,否则返回0;
SELECT 4 BETWEEN 2 AND 5, 12 BETWEEN 9 AND 10;
| 4 BETWEEN 2 AND 5 | 12 BETWEEN 9 AND 10 |
|---|---|
| 1 | 0 |
LIKE 通配符
LIKE运算符用来匹配字符串。
expr LIKE 匹配条件,如果表达式满足匹配条件,则返回1,否则返回0;
- '%': 匹配任何数目的字符,包括零字符。
- '_': 只能匹配一个字符。
SELECT
'stud' LIKE 'stud',
'stud' LIKE 'stu_',
'stud' LIKE '%d',
'stud' LIKE 't___',
's' LIKE NULL;
结果可想而知,前三个返回1,第四个返回0,最后一个返回NULL;
REGEXP 运算符
expr REGEXP 匹配条件,如果满足匹配条件,返回1。否则返回0。若expr或匹配条件任意一个为NULL,则结果为NULL。