mysql实用语法技巧

主键冲突方法

  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实用语法技巧)