MySql函数总结

---------------------------------------字符串函数--------------------------------------

concat函数:

连接字符串的函数,

select concat(deptid,‘  ’,if(sex,'男生','女生'),'  ',stuname) from student;

这个语句就只返回一个连接过后了的字符串。

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

该函数是多字节可靠的。 

right与left相反。

SUBSTRING(str FROM pos FOR len) :

取出子字符串

select substring('qwertyu',2,3);

ltrim('  asdf'):

rtrim('  asdf'):

trim('  asdf'):包含了ltrim和rtrim。

SPACE(N) :
返回由N个空格字符组成的一个字符串。 

REPEAT(str,count) :
返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。 

这个功能与python中的*功能很类似。

REVERSE(str) :
返回颠倒字符顺序的字符串str。 

------------------------------------------时间函数-------------------------------

now()函数。

CURDATE()函数。

sysdate()函数。

UNIX_TIMESTAMP(date) 
  如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。 
  mysql> select UNIX_TIMESTAMP(); 
  -> 882226357 
  mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00'); 
  -> 875996580 
  当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。

Select curtime();取出当前时间,不带日期,结果如下:

mysql> Select curtime();
+-----------+
| curtime() |
+-----------+
| 21:45:49  |
+-----------+
1 row in set (0.00 sec)

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

if(expr1,expr2,expr3):如果expr1,成立,则执行expr2,否则执行expr3。

mysql> select * from user;
+----+-------+--------+
| id | name  | extra  |
+----+-------+--------+
|  1 | user1 | user1  |
|  4 | user4 | user4  |
|  5 | user5 | user5  |
|  6 | user3 | user6  |
|  9 | user2 | user9  |
| 10 | user6 | user10 |
| 11 | tt    | dd     |
| 12 | ttd   | dd     |
+----+-------+--------+
8 rows in set (0.00 sec)

mysql> select id,if(name like '%user%','aa','bb') from user;
+----+----------------------------------+
| id | if(name like '%user%','aa','bb') |
+----+----------------------------------+
| 11 | bb                               |
| 12 | bb                               |
|  1 | aa                               |
|  9 | aa                               |
|  6 | aa                               |
|  4 | aa                               |
|  5 | aa                               |
| 10 | aa                               |
+----+----------------------------------+
8 rows in set (0.00 sec)

CASE WHEN THEN 函数
语法: 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 ;
函数用法说明:在第一个方案的返回结果中, value =compare-value 。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为 ELSE 后的结果,如果没有 ELSE 部分,则返回值为 NULL

这里有一个例子很好的说明了case when then end的用法。

IFNULL 函数
语法: IFNULL(expr1,expr2)
函数用法说明:假如 expr1 不为 NULL ,则 IFNULL() 的返回值为 expr1 ; 否则其返回值为 expr2 。 IFNULL() 的返回值是数字或是字符串,具体情况取决于其所使用的语境。

先看一下表中的数据:

mysql> select * from f where name is NULL;
+------+------+
| id   | name |
+------+------+
|  111 | NULL |
+------+------+
1 row in set (0.00 sec)
查询函数如下:

mysql> select ifnull(NULL,'2');
+------------------+
| ifnull(NULL,'2') |
+------------------+
| 2                |
+------------------+
1 row in set (0.00 sec)

-----------------------------字符串比较函数-----------------------------------------

bin (N):将一个数字转换成二进制形式。假如 N 为 NULL ,则返回值为 NULL

mysql> select ascii('b');:求一个字符串最左侧字符的数字表示。
+------------+
| ascii('b') |
+------------+
|         98 |
+------------+
1 row in set (0.00 sec)

mysql> select CHAR_LENGTH('abc'):求一个字符串的长度
    -> ;
+--------------------+
| CHAR_LENGTH('abc') |
+--------------------+
|                  3 |
+--------------------+
1 row in set (0.00 sec)
CHARACTER_LENGTH(str )是上一个的同义词。
mysql> select char("97",'98','99');将数字变成字符。
+----------------------+
| char("97",'98','99') |
+----------------------+
| abc                  |
+----------------------+
1 row in set (0.00 sec)

CONCAT_WS(separator ,str1 ,str2 ,...)

函数使用说明: CONCAT_WS() 代表 CONCAT With Separator ,是 CONCAT() 的特殊形式。    第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL ,则结果为 NULL 。函数会忽略任何分隔符参数后的 NULL 值。
mysql> select concat_ws(
'@','bac','123');
+----------------------------+
| concat_ws(
'@','bac','123') |
+----------------------------+
|
bac@123                    |
+----------------------------+
1 row in set (0.00 sec)
 函数 ELT(N ,str1 ,str2 ,str3 ,...)
函数使用说明:若 N = 1 ,则返回值为   str1 ,若 N = 2 ,则返回值为 str2 ,以此
类推。    若 N 小于 1 或大于参数的数目,则返回值为 NULL 。 ELT() 是   FIELD() 的补数

mysql> select elt(3,'a','b','c');
+--------------------+
| elt(3,'a','b','c') |
+--------------------+
| c                  |
+--------------------+
1 row in set (0.00 sec)

函数CONV(N from_base, to_base)
函数使用说明:不同数基间转换数字。返回值为数字的 N 字符串表示,由 from_base 基转化为 to_base 基。如有任意一个参数为 NULL ,则返回值为 NULL 。自变量 N 被理解为一个整数,但是可以被指定为一个整数或字符串。最小基数为 2 ,而最大基数则为 36 。 If to_base 是一个负数,则 N 被看作一个带符号数。否则, N 被看作无符号数。 CONV() 的运行精确度为 64 比特。
mysql> select conv(11,10,2);
+---------------+
| conv(11,10,2) |
+---------------+
| 1011          |
+---------------+
1 row in set (0.01 sec)

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

count():

这个不说了。

-----------------------------------------聚合函数---------------------------------------

min、max、sum、count

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

user函数返回当前 MySQL 用户名和机主名。调用方法select user(0;

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

version函数返回指示 MySQL 服务器版本的字符串。这个字符串使用 utf8 字符集。调用方法select version();



follow me @佐小白

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值