MySQL单行函数

1、CONCAT(str1,str2,...)
返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。

 select CONCAT(‘My‘, ‘S‘, ‘QL‘);--‘MySQL‘

 select CONCAT(‘My‘, NULL, ‘QL‘); -> NULL

2、 LENGTH(str) 返回字符串str的长度。
 
  select LENGTH(‘text‘); -> 4

3 、LOCATE(substr,str)  和 POSITION(substr IN str)
 
  返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.

  select LOCATE(‘bar‘, ‘foobarbar‘); -> 4
  select LOCATE(‘xbar‘, ‘foobar‘); -> 0

  LOCATE(substr,str,pos)
  返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。
  select LOCATE(‘bar‘, ‘foobarbar‘,5); -> 7

4 、INSTR(str,substr)
  返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数  被颠倒。
  select INSTR(‘foobarbar‘, ‘bar‘);  -> 4
  select INSTR(‘xbar‘, ‘foobar‘);-> 0

5 、LPAD(str,len,padstr)
返回字符串str,左面用字符串padstr填补直到str是len个字符长。
mysql> select LPAD(‘hi‘,4,‘??‘);
    -> ‘??hi‘

6、 RPAD(str,len,padstr)
返回字符串str,右面用字符串padstr填补直到str是len个字符长。
mysql> select RPAD(‘hi‘,5,‘?‘);
    -> ‘hi???‘

7、 LEFT(str,len)
返回字符串str的最左面len个字符。
mysql> select LEFT(‘foobarbar‘, 5);
    -> ‘fooba‘

8、 RIGHT(str,len)
返回字符串str的最右面len个字符。
mysql> select RIGHT(‘foobarbar‘, 4);
    -> ‘rbar‘

9、 SUBSTRING(str,pos,len)
从字符串str返回一个len个字符的子串,从位置pos开始。使用FROM的变种形式是ANSI SQL92语法。
mysql> select SUBSTRING(‘Quadratically‘,5,6);
    -> ‘ratica‘

10、 LTRIM(str)
返回删除了其前置空格字符的字符串str。
mysql> select LTRIM(‘ barbar‘);
    -> ‘barbar‘

11、 RTRIM(str)
返回删除了其拖后空格字符的字符串str。
mysql> select RTRIM(‘barbar   ‘);
    -> ‘barbar‘

12 、TRIM(str)
mysql> select TRIM(‘ bar   ‘);
    -> ‘bar‘

13、 SPACE(N)
返回由N个空格字符组成的一个字符串。
mysql> select SPACE(6);
    -> ‘      ‘

14、 REPLACE(str,from_str,to_str)
返回字符串str,其字符串from_str的所有出现由字符串to_str代替。
mysql> select REPLACE(‘www.mysql.com‘, ‘w‘, ‘x‘);
    -> ‘xxx.mysql.com‘

15、 REPEAT(str,count)
返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。
mysql> select REPEAT(‘MySQL‘, 3);
    -> ‘MySQLMySQLMySQL‘

16、 REVERSE(str)
返回颠倒字符顺序的字符串str。
mysql> select REVERSE(‘abc‘);
    -> ‘cba‘

17 、INSERT(str,pos,len,newstr)
返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替。
mysql> select INSERT(‘Quadratic‘, 3, 4, ‘What‘);
    -> ‘QuWhattic

18 、ELT(N,str1,str2,str3,...)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。
mysql> select ELT(1, ‘ej‘, ‘Heja‘, ‘hej‘, ‘foo‘);
    -> ‘ej‘
mysql> select ELT(4, ‘ej‘, ‘Heja‘, ‘hej‘, ‘foo‘);
    -> ‘foo‘

19、 FIELD(str,str1,str2,str3,...)
返回str在str1, str2, str3, ...清单的索引。如果str没找到,返回0。FIELD()是ELT()反运算。
mysql> select FIELD(‘ej‘, ‘Hej‘, ‘ej‘, ‘Heja‘, ‘hej‘, ‘foo‘);
    -> 2
mysql> select FIELD(‘fo‘, ‘Hej‘, ‘ej‘, ‘Heja‘, ‘hej‘, ‘foo‘);
    -> 0

20 、LOWER(str)
返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成小写。该函数对多字节是可靠的。
mysql> select LCASE(‘QUADRATICALLY‘);
    -> ‘quadratically‘

 
21 、UPPER(str)
返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写。该函数对多字节是可靠的。
mysql> select UCASE(‘Hej‘);
    -> ‘HEJ‘

---------------------------------------------------------------------------------------------------------------------------------------------------

 mysql 时间函数:

1、 DAYOFWEEK(date)  
  返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。  
  mysql> select DAYOFWEEK(‘1998-02-03‘);  
  -> 3

2、 WEEKDAY(date)  
  返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。  
  mysql> select WEEKDAY(‘1997-10-04 22:23:00‘);  
  -> 5  

3 、DAYOFMONTH(date)  
  返回date的月份中日期,在1到31范围内。  
  mysql> select DAYOFMONTH(‘1998-02-03‘);  
  -> 3

4 、DAYOFYEAR(date)  
  返回date在一年中的日数, 在1到366范围内。  
  mysql> select DAYOFYEAR(‘1998-02-03‘);  
  -> 34

5 、MONTH(date)  
  返回date的月份,范围1到12。  
  mysql> select MONTH(‘1998-02-03‘);  
  -> 2

6 、DAYNAME(date)  
  返回date的星期名字。  
  mysql> select DAYNAME("1998-02-05");  
  -> ‘Thursday‘

7 、MONTHNAME(date)  
  返回date的月份名字。  
  mysql> select MONTHNAME("1998-02-05");  
  -> ‘February‘

8 、QUARTER(date)  
  返回date一年中的季度,范围1到4。  
  mysql> select QUARTER(‘98-04-01‘);  
  -> 2

9 、WEEK(date)  
     
10 、WEEK(date,first)  
  对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。2个参数形式WEEK()允许你指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1,从星期一开始。  
  mysql> select WEEK(‘1998-02-20‘);  
  -> 7  
  mysql> select WEEK(‘1998-02-20‘,0);  
  -> 7  
  mysql> select WEEK(‘1998-02-20‘,1);  
  -> 8

11 、YEAR(date)  
  返回date的年份,范围在1000到9999。  
  mysql> select YEAR(‘98-02-03‘);  
  -> 1998

12、 HOUR(time)  
  返回time的小时,范围是0到23。  
  mysql> select HOUR(‘10:05:03‘);  
  -> 10

13 、MINUTE(time)  
  返回time的分钟,范围是0到59。  
  mysql> select MINUTE(‘98-02-03 10:05:03‘);  
  -> 5

14、 SECOND(time)  
  回来time的秒数,范围是0到59。  
  mysql> select SECOND(‘10:05:03‘);  
  -> 3

15、PERIOD_ADD(P,N)  
  增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。  
  mysql> select PERIOD_ADD(9801,2);  
  -> 199803

16、 PERIOD_DIFF(P1,P2)  
  返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。  
  mysql> select PERIOD_DIFF(9802,199703);  
  -> 11
17 、DATE_ADD(date,INTERVAL expr type)  
     
18 、DATE_SUB(date,INTERVAL expr type)  
     
19、 ADDDATE(date,INTERVAL expr type)  
     
20、 SUBDATE(date,INTERVAL expr type)

    SECOND 秒 SECONDS  
  MINUTE 分钟 MINUTES  
  HOUR 时间 HOURS  
  DAY 天 DAYS  
  MONTH 月 MONTHS  
  YEAR 年 YEARS  
  MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"  
  HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"  
  DAY_HOUR 天和小时 "DAYS HOURS"  
  YEAR_MONTH 年和月 "YEARS-MONTHS"  
  HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"  
  DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"  
  DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"

例如:  select adddate(‘1997-12-31‘,interval 1 month);
        select date_add(‘1997-12-31‘,interval 1 month);

21、TO_DAYS(date)  
  给出一个日期date,返回一个天数(从0年的天数)。   0000
  mysql> select TO_DAYS(‘1997-10-07‘);  
  -> 729669

22 、FROM_DAYS(N)  
  给出一个天数N,返回一个DATE值。  
  mysql> select FROM_DAYS(729669);  
  -> ‘1997-10-07‘

23 、DATE_FORMAT(date,format)  
  根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December)  
  %W 星期名字(Sunday……Saturday)  
  %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)  
  %Y 年, 数字, 4 位  
  %y 年, 数字, 2 位  
  %a 缩写的星期名字(Sun……Sat)  
  %d 月份中的天数, 数字(00……31)  
  %e 月份中的天数, 数字(0……31)  
  %m 月, 数字(01……12)  
  %c 月, 数字(1……12)  
  %b 缩写的月份名字(Jan……Dec)  
  %j 一年中的天数(001……366)  
  %H 小时(00……23)  
  %k 小时(0……23)  
  %h 小时(01……12)  
  %I 小时(01……12)  
  %l 小时(1……12)  
  %i 分钟, 数字(00……59)  
  %r 时间,12 小时(hh:mm:ss [AP]M)  
  %T 时间,24 小时(hh:mm:ss)  
  %S 秒(00……59)  
  %s 秒(00……59)  
  %p AM或PM  
  %w 一个星期中的天数(0=Sunday ……6=Saturday )  
  %U 星期(0……52), 这里星期天是星期的第一天  
  %u 星期(0……52), 这里星期一是星期的第一天  
  %% 一个文字“%”。

  所有的其他字符不做解释被复制到结果中。

  mysql> select DATE_FORMAT(‘1997-10-04 22:23:00‘, ‘%W %M %Y‘);  
  -> ‘Saturday October 1997‘  
  mysql> select DATE_FORMAT(‘1997-10-04 22:23:00‘, ‘%H:%i:%s‘);  
  -> ‘22:23:00‘  
  mysql> select DATE_FORMAT(‘1997-10-04 22:23:00‘,  
  ‘%D %y %a %d %m %b %j‘);  
  -> ‘4th 97 Sat 04 10 Oct 277‘  
  mysql> select DATE_FORMAT(‘1997-10-04 22:23:00‘,  
  ‘%H %k %I %r %T %S %w‘);  
  -> ‘22 22 10 10:23:00 PM 22:23:00 00 6‘  
  MySQL3.23中,在格式修饰符字符前需要%。在MySQL更早的版本中,%是可选的。

24 、TIME_FORMAT(time,format)  
  这象上面的DATE_FORMAT()函数一样使用,但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。其他修饰符产生一个NULL值或0

25、 Mysql取系统函数:

   Select curtime();

   Select curdate():

   Select sysdate():
   select now();

------------------------------------------------------------------------------------------------------------------------------------------------------------------
流程控制函数:

1、   IFNULL(expr1,expr2)   

如果 expr1 为非 NULL 的,IFNULL() 返回 expr1,否则返回 expr2。

2、   NULLIF(expr1,expr2)  

 如果 expr1 = expr2 为真,返回 NULL,否则返回 expr1

3、  IF(expr1,expr2,expr3)   如果 expr1 为真(expr1 <> 0 以及 expr1 <> NULL),那么 IF() 返回 expr2,否则返回 expr3

原文地址:https://www.cnblogs.com/DebugTheWorld/p/9903626.html

时间: 2024-08-29 08:34:06

MySQL单行函数的相关文章

MySQL -- 单行函数

大小写控制函数 SELECT LOWER('HelloWrold'), UPPER('HelloWorld'); 字符控制函数 SELECT REPLACE('abcdababab','p','m'); 将"abcdababab"中的字符p替换成m; SELECT TRIM(' ' FROM ' HHHHHello.HHHWorldHHHHH '); 去掉两边的空格. SELECT LPAD(salary, 10,'-'), RPAD(salary, 10, '*') FROM emp

MySQL高级查询函数(单行函数)

函数的分类:1,单行函数:对每一条记录输入值进行计算,得到相应的计算结果,返回给用户,也就是说,每条记录作为一个输入参数,经过函数计算得到每条记录的计算结果.2,多行函数:对多条记录输入值进行计算,得到多条记录对应的单个结果. 单行函数: ①:字符串函数(用户处理单行的字符数据,比如大小写转换,字符串截取,拼装等) a.LOWER/UPPER(LOWER(str):返回字符串str变为小写字母的字符串.UPPER(str):返回字符串str变为大写字母的字符串) SELECT UPPER(nam

数据库 day60,61 Oracle入门,单行函数,多表查询,子查询,事物处理,约束,rownum分页,视图,序列,索引

1.    oracle介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一.比如SilverStream就是基于数据库的一种中间件.ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能:作为一个关系数据库,它是一个完备关系的产品:作为分布式数据库它实现了分布式处理功能.但它的所有知识,只要在一种机型上学习

MySQL replace函数替换字符串语句的用法(mysql字符串替换)

MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪. 最近在研究CMS,在数据转换的时候需要用到mysql的MySQL replace函数,这里简单介绍一下. 比如你要将表 tb1里面的 f1字段的abc替换为def UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 str 中所有出现

04_MySQL常见函数_单行函数

#单行函数细分1.字符函数2.数学函数3.日期函数4.其他函数5.流程控制函数 #单行函数 - 字符函数#一.字符函数#1. length 获取参数的字节长度SELECT LENGTH('john');SELECT LENGTH('张三丰'); #utf-8编码,1个汉字3个字节 # 查看当前客户端的字符集SHOW VARIABLES LIKE '%char%'; #2. concat 拼接字符SELECT CONCAT(last_name,'_',first_name) FROM employ

sql的基础语句-单行函数,dual,数字函数,日期函数,表连接,集合运算,分组报表,单行子查询,多行子查询

3. 单行函数 3.1 转换函数 select ascii('A'),chr(65) from dual; select to_char(1243123),1231451 from dual;靠左边的就是字符串,靠右边的就是数字 select to_char(123512a121) from dual;   --错误的写法,没有引号表示数字,但是数字里面包含了字母,不合法的输入值 select to_number('123141211') from dual; select to_number(

Mysql的函数使用方法

今天有点临时需求要计算一张表的结果,不想写代码,想到了mysql的自定义函数.碰到了很多问题,为了方便一下使用,在此记录一下. 需求:一张表中,有比分,需要查询出比赛id和比赛结果. 分析: 单表查询没啥的,困难就困难在怎么判断比分之后返回想要的结果. 这里我把比赛结果分别定义代号,1主场胜.2平局.3客场胜 函数逻辑: 接收两个参数,判断参数的大小,分别返回结果. 实现: Navicat操作: navicat for mysql 工具内--创建函数 这里分别是存储过程和函数,我们选择函数 设置

MySQL字符串函数、日期时间函数

MySQL字符串函数.日期时间函数 一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符

Mysql字符串函数FIND_IN_SET()的两点用法

概要:该可以查询用逗号分割的字段,以及对结果进行强制排序 首先看一张表: colid vyear area cast ,31,32,21,12 2014 1 15 ,32,33,34,35,21, 2014 2 16 ,33,34,36,39,40 2011 3 17 表中的colid字段的值是以逗号分割, 当我们需要查询这张表中,colid含有32的行, 那么可以用FIND_IN_SET() SQL如下: SELECT * FROM table WHERE FIND_IN_SET('32',