MYSQL - 运算符

82 阅读1分钟

运算符

LEAST 和 GREATEST 运算符

  1. LEAST(值1,值2,值3,...,值n),返回最小值;如果其中含有NULL,则返回NULL;

  2. 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')
10

在左侧表达式为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')
NULLNULL

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 512 BETWEEN 9 AND 10
10

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。