1.MYSQL ifnull 函数 、if判断 、case when、 locate
(1)、IFNULL(expr1,expr2)
如果expr1为空(即NULL),返回expr2,如果expr1不为空,返回expr1。注意:IFNULL 只能处理 NULL 值。
(2)、IF(expr1,expr2,expr3)
如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。
例:select IF(column_name = 'test', '测试', IF(column_name = '' , '全部', column_name)) from Table_name
(3)、CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
(4)、LOCATE(substr,str) , LOCATE(substr,str,pos)
第一个语法返回字符串 str中子字符串substr的第一个出现位置。
第二个语法返回字符串 str中子字符串substr的第一个出现位置, 起始位置在pos。
如若substr 不在str中,则返回值为0。
例:select locate('abcd', 'ddddddddabc ddd')