美文网首页
mysql实用语法技巧

mysql实用语法技巧

作者: 胖嘟嘟洒酒疯 | 来源:发表于2019-05-29 00:22 被阅读0次

    主键冲突方法

    1. on duplicate key update

      -- 也可用于解决update时造成的唯一索引冲突, 当发生唯一索引冲突时替换原来的值
      insert into tablename(field1,field2, field3) values (value1, value2, value3) on duplicate key update field1=value1,field2=value2, field3=value3;
      
    2. replace into

      -- 当发生主键冲突时替换原来的值
      replace into tablename(field1,field2, field3) values (value1, value2, value3)
      
    3. insert ignore into

      -- 当发生唯一索引冲突时,返回0,不插入,不抛出错误
      insert ignore into tablename (field1,field2,field3) values (value1,value2,value3);
      

    模糊匹配与正则匹配

    1. 模糊匹配

      -- 百分号(%):表示任意个或多个字符
      -- 下划线(_):表示任意单个字符
      select * from tablename where field1 like '%hello_';
      
      -- 可以直接对参数进行模糊查询
      select * from user where name like concat('%', 'hello', '%');
      
    2. 正则匹配

      -- ^: 匹配表达式开始
      -- $: 匹配表达式结束
      -- .: 匹配任务单个字符
      -- *: 匹配0个或多个表达式
      -- +: 匹配一个或多个表达式
      select * from tablename where field1 regexp 'hello.';
      

    日期处理函数

    -- 获取当前日期,当前时间,当前日期时间
    select curdate(), current_date, curtime(), current_time, now(), sysdate(), localtime, current_timestamp;
    
    -- 当前日期加减
    select adddate(curdate(), 1), date_add(curdate(), interval 1 day ), subdate(curdate(), 1), date_sub(curdate(), interval 1 day )
    
    -- 当前时间加减
    select addtime(now(), 30), date_add(now(), interval 30 second ), subtime(now(), 30), date_sub(now(), interval  30 second ) ;
    
    -- 提取日期和时间
    select date(now()), time(now());
    
    -- 提取日期时间中具体的某个值
    select extract(year from now()), extract(month from now()), extract(day from now()), extract(hour from now()), extract(minute from now()), extract(second from now());
    select year(now()), month(now()), day(now()), hour(now()), minute(now()),second(now());
    
    -- 计算时间差
    select datediff(adddate(now(), 1), now()), timediff(adddate(now(), 1), now()), timestampdiff(day ,adddate(now(), 1), now())
    
    -- 计算今天是第多少天
    select dayofweek(now()), dayofmonth(now()), dayofyear(now())
    
    

    常用函数

    -- IF(expr,v1,v2)   如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。   
    SELECT IF(1 > 0,'正确','错误')    
    
    -- IFNULL(v1,v2)    如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。 
    SELECT IFNULL(null,'Hello Word')
    
    -- ISNULL(expression)   判断表达式是否为 NULL   
    SELECT ISNULL(NULL);
    

    相关文章

      网友评论

          本文标题:mysql实用语法技巧

          本文链接:https://www.haomeiwen.com/subject/pdpstctx.html