mysql常用单行函数

一、大小写控制函数

LOWER(str)    将str的值全部置为小写字母

  1. select LOWER(‘ABC‘);
  2. --结果:
  3. LOWER(‘ABC‘)
  4. abc

UPPER(str)    将str的值全部置为大写字母

  1. select UPPER(‘abc‘);
  2. --结果:
  3. UPPER(‘abc‘)
  4. ABC

二、字符控制函数

CONCAT(str1,str2,...)    将str1、str2等字符串连接起来

  1. select CONCAT(‘a‘,‘b‘,‘c‘);
  2. --结果:
  3. CONCAT(‘a‘,‘b‘,‘c‘)
  4. abc

SUBSTR(str,pos,len)    从str的第pos位(范围:1~str.length)开始,截取长度为len的字符串

  1. select SUBSTR(‘abc‘,1,2);
  2. --结果:
  3. SUBSTR(‘abc‘,1,2)
  4. ab

LENGTH(str)    获取str的长度

  1. select LENGTH(‘abc‘);
  2. --结果:
  3. LENGTH(‘abc‘)
  4. 3

INSTR(str,substr)    获取substr在str中的位置

  1. select INSTR(‘abc‘,‘a‘);
  2. --结果:
  3. INSTR(‘abc‘,‘a‘)
  4. 1

LPAD(str,len,padstr)/RPAD(str,len,padstr)    首先判断str是否达到了len的长度,如果没有达到,那么在str的左侧/右侧对应添加padstr来使结果达到len的长度

注:padstr常用的值有:‘*‘和‘ ‘(空格)

  1. select name from person;
  2. --结果:
  3. name
  4. xiaoP
  5. xiaoPP
  6. xiao_p
  7. --
  8. select LPAD(name,10,‘*‘)from person;
  9. --结果:
  10. LPAD(name,10,‘*‘)
  11. *****xiaoP
  12. ****xiaoPP
  13. ****xiao_p

TRIM(remstr FROM str)    从str中删除开头和结尾的remstr(不会处理字符串中间含有的remstr)

TRIM(str)    从str中删除开头和结尾的空格(不会处理字符串中间含有的空格)

LTRIM(str)    从str中删除左侧开头的空格

RTRIM(str)    从str中删除右侧结尾的空格

  1. select TRIM(‘a‘ FROM ‘abca‘);
  2. --结果:
  3. TRIM(‘a‘ FROM ‘abca‘)
  4. bc
  5. --
  6. select TRIM(‘a‘ FROM ‘abab‘);
  7. --结果:
  8. TRIM(‘a‘ FROM ‘abab‘)
  9. bab
  10. --
  11. select LTRIM(‘ abc ‘);
  12. --结果:
  13. LTRIM(‘ abc ‘)
  14. abc --abc后面是有空格的
  15. --
  16. select RTRIM(‘ abc ‘);
  17. --结果:
  18. RTRIM(‘ abc ‘)
  19. abc

REPLACE(str,from_str,to_str)    将str中的from_str替换为to_str(会替换掉所有符合from_str的字符串)

  1. SELECT REPLACE(‘abcbc‘,‘b‘,‘m‘);
  2. --结果:
  3. REPLACE(‘abcbc‘,‘b‘,‘m‘)
  4. amcmc

三、数字函数

ROUND(X,D)    根据D指定的(小数)位数对X进行四舍五入(注意,D可以为负数,为负数的时候即为对个位以上四舍五入)

ROUND(X)    对X进行取整,根据十分位进行四舍五入,精确到个位

  1. SELECT ROUND(2.3456,3);
  2. --结果:
  3. ROUND(2.3456,3)
  4. 2.346

TRUNCATE(X,D)    根据D指定的(小数)位数来对X进行截断(不进行四舍五入)(注意,D可以为负数,为负数的时候即为对个位以上截断)

  1. SELECT TRUNCATE(10.88888,2);
  2. --结果:
  3. TRUNCATE(10.88888,2)
  4. 10.88

MOD(N,M)    对N/M求余

  1. select MOD(5.7,2.8);
  2. --结果:
  3. MOD(5.7,2.8)
  4. 0.1

四、日期函数

SYSDATE()或者NOW()   返回当前系统时间,格式为YYYY-MM-DD hh-mm-ss

  1. select SYSDATE();
  2. --结果:
  3. SYSDATE()
  4. 2015-06-2021:17:25

DAYOFMONTH(date)    返回指定时间的月份

DAYOFWEEK(date)    返回指定时间是星期几(注意,这个和中国的习惯有不符,此返回值如果是1,则代表星期日)

DAYOFYEAR(date)    返回指定时间是哪一年

以上函数中,date可以用NOW()或者其他的date格式的字段

日期可以和数字(作为天数)做加减;日期和日期之间只可以做减法;数字除以24可以作为天数和日期相加减;

注:经实测,日期只要是和数字进行了交互,格式就会发生变化(由YYYY-MM-DD hh-mm-ss变为YYYYMMDDhhmmss),然后再进行运算

DAYNAME(date)    返回date日期是星期几

LAST_DAY(date)    返回date日期当月的最后一天

五、转换函数

TO_DAYS(date)    将date格式的日期转换为天数(‘0000-01-01‘转换结果为1,以此类推)

TO_SECONDS(expr)    将表达式expr转换成秒(‘0000-01-01‘转换结果为86400,为一天的秒数)

DATE_FORMAT(date,format)    将日期转换成字符串(类似oracle中的to_char())

STR_TO_DATE(str,format)    将字符串转换成日期(类似oracle中的to_date())

  1. SELECT DATE_FORMAT(NOW(),‘%Y-%m-%d %T‘),STR_TO_DATE(NOW(),‘%Y-%m-%d %T‘);
  2. --结果:
  3. DATE_FORMAT(NOW(),‘%Y-%m-%d %T‘) STR_TO_DATE(NOW(),‘%Y-%m-%d %T‘)
  4. 2015-06-2113:52:06               2015-06-2113:52:06

UNIX_TIMESTAMP([datetime])    将datetime格式的日期时间转换为unix时间戳(如果参数为空,则转换当前系统时间)

六、通用函数

IFNULL(expr1,expr2)    判断expr1是否为null,如果为null,则用expr2来代替null(类似oracle的NVL()函数)

  1. SELECT
  2. id,
  3. NAME,
  4. dept_id,
  5. FORMAT(
  6. salary *12*(IFNULL(commission_pct,1)),
  7. 0
  8. )
  9. FROM
  10. person
  11. WHERE
  12. dept_id IN (101,106,109);
  13. --结果:
  14. id name dept_id      FORMAT    (salary*12*(IFNULL(commission_pct,1)),0)
  15. 0001    LiLei        101       13,200
  16. 0002    HanMeimei    106       27,600
  17. 0003    Lucy         109       36,000

IF(expr1,expr2,expr3)    判断expr1是否为真(是否不为null),如果为真,则使用expr2替代expr1;如果为假,则使用expr3替代expr1(类似oracle的NVL2()函数)

  1. SELECT
  2. IF (
  3. dept_id,
  4. ‘有部门‘,‘没有部门‘
  5. ) dept
  6. FROM
  7. person;
  8. --结果:
  9. dept
  10. 有部门
  11. 有部门
  12. 有部门
  13. 没有部门

NULLIF(expr1,expr2)    判断expr1和expr2是否相等,如果相等则返回null,如果不相等则返回expr1

  1. select NULLIF(1,1),NULLIF(1,2);
  2. --结果:
  3. NULLIF(1,1)   NULLIF(1,2)
  4. (NULL)        1

COALESCE(value,...)    判断value的值是否为null,如果不为null,则返回value;如果为null,则判断下一个value是否为null……直至出现不为null的value并返回或者返回最后一个为null的value。

  1. SELECT
  2. COALESCE (
  3. dept_id,
  4. commission_pct,
  5. NAME
  6. )
  7. FROM
  8. person
  9. WHERE
  10. NAME =‘Lily‘;
  11. --结果:
  12. COALESCE (dept_id,commission_pct,name)
  13. Lily

CASE WHEN THEN ELSE END    条件函数

CASE 指定字段 WHEN 需要符合的条件1 THEN 表达式1 WHEN 需要符合的条件2 THEN 表达式2 ... ELSE 其他情况的表达式 END

  1. SELECT
  2. id,
  3. NAME,
  4. dept_id,
  5. CASE dept_id
  6. WHEN 101 THEN
  7. salary *1.1
  8. WHEN 106 THEN
  9. salary *1.2
  10. ELSE
  11. salary *1.3
  12. END salary
  13. FROM
  14. person
  15. WHERE
  16. dept_id IN (101,106,109);
  17. --结果:
  18. id       NAME       dept_id     salary
  19. 0001     LiLei      101         1100
  20. 0002     HanMeimei  106         2400
  21. 0003     Lucy       109         3900
时间: 2024-12-07 06:22:04

mysql常用单行函数的相关文章

MySQL常用字符函数简介

<html> <body> <h1>MySQL常用字符函数简介</h1> <table>     <tr>         <td>CONCAT(S1,S2...Sn)</td>         <td>连接S1,S2...Sn为一个字符串</td>     </tr> </table> <p style="background-color:yel

mysql常用的函数

1.IF(expr1,expr2,expr3)函数: 如果 expr1 是TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3. IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定. 例: 2.IFNULL(expr1,expr2)函数: 如果expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2. IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境. 3.CONCAT(str1,str2,..

MYSQL常用操作函数的封装

1.mysql常用函数封装文件:mysql.func.php <?php /** * 连接MYSQL函数 * @param string $host * @param string $username * @param string $password * @param string $dbName * @param string $charset * @return resource */ function connect($host,$username,$password,$dbName,$

MySQL常用类型转换函数总结

MySQL函数,常用类型转换函数总结 1.Concat函数. 连接字符串常用:concat函数.如sql查询条件的like查询, AND c.name like concat(#{param.name},'%') 将Int 转为varchar经常用 concat函数,比如concat(8,'0') 得到字符串 '80' 2.Cast函数:CONVERT函数. 用法:CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transc

Oracle常用单行函数(原创)

前言: 想把单行函数进行一个比较全面的总结,并分享给有需要的人,有不明之处还请多多指教. SQL函数:Oracle的内置函数,包括了单行函数和多行函数,本文重点讲解单行函数.单行函数又可以分为许多类,本人将常用的分为5大类: 字符函数(7个),数值函数(7个),日期函数(7个),转换函数(3个),通用函数(9个),下面开始分析. 一.字符函数: 1.concat函数:用来拼接2个字符串,Expression:concat(str1,str2); Example: select concat('m

关于mysql常用时间函数

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 最近一直在做游戏后台工具的一些关于数据统计的工作,对于mysql的时间函数用的比较多,但是用过了就忘记了,又容易混淆,所以在此记录一下使用过的函数,以后逐步补全. 1.now(),返回当前的时间格式. > select NOW(); > '2014-11-24 18:38:17' 2.CURDATE(),返回当前的时间格式. > select CURDATE(); > '2014-11-2

MySQL常用Json函数

官方文档:JSON Functions Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create JSON array JSON_ARRAY_APPEND() Append data to JSON document JSON_ARRAY_INSERT() Insert into JSON array -> Return value from JSON column after evaluati

MySql常用日期函数(转载)

/*date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算. date 是一个 datetime 或date值,用来指定起始时间. expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值. expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’开头. type 为关键词,它指示了表达式被解释的方式. 关键词interva及 type 分类符均不区分大小写. 日期操作,adddate就是d

mysql 常用自定义函数解析

-- /* -- * 用于获取一记录数据,根据传入的分隔字符delim,索引位置pos,返回相对应的value -- * SELECT Json_getKeyValue({"A":"2","B":"0","C":"1","D":"1"},'A'); -- */ DELIMITER $$ DROP FUNCTION IF EXISTS `Json_g