MySql

1.length:计算字段的长度。一个汉字-->3个字符,一个数字或字母-->1个字符

  select length(username) from user;

  select * from user where length(username)>6;

2.UNIX_TIMESTAMP:将时间转化为时间戳。date类型转化为timestamp整数(秒数)。

   FROM_UNIXTIME:将timestamp 形式整数 转化为 date类型。

  select UNIX_TIMESTAMP(ifnull(hangup_time; create_time)) - UNIX_TIMESTAMP(dial_time) from call_log;

  select from_unixtime(1355272360);

PS:

目前timestamp 所能表示的范围在 1970  -  2038之间 。超过这个范围 得到的时间将会溢出 得到的时间是null。

select from_unixtime(0);   >>>  1970-01-01 08:00:00

select from_unixtime(2147483647);  >>>   2038-01-19 11:14:07

select UNIX_TIMESTAMP('2038-01-19 11:14:08')   >>>   0

3.select for update

  在SELECT 的读取锁定主要分为两种方式:

  SELECT ... LOCK IN SHARE MODE

  SELECT ... FOR UPDATE

  这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行。而主要的不同在于LOCK IN SHARE MODE 在有一方事务要Update 同一个表单时很容易造成死锁 。

  

4.判断语句

  select if(sex=1,'男','女') as 性别 from User where id=1

  select CASE 

    WHEN platform=1 THEN '平台1'

    WHEN platform=2 THEN '平台2'

    ELSE '非平台' END

  select CASE platform

    WHEN 1 THEN '平台1'

    WHEN 2 THEN '平台2'

    ELSE '非平台' END

  SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END

IFNULL(expr1,expr2) 
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串

IFNULL(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或 INTEGER。

posted on 2017-06-21 09:18  幻海蓝鱼  阅读(144)  评论(0编辑  收藏  举报

导航