分类
学习笔记

Mysql 中计算两日期的相差月数、日数等

返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。interval 的法定值同TIMESTAMPADD()函数说明中所列出的相同,可以使用:FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。

如:

SELECT TIMESTAMPDIFF(MONTH,’2014-01-21′,NOW());

分类
学习笔记

MySQL 语句级避免重复插入—— Insert Select Not Exist

想要插入一条数据,要避免重复插入,又不想折腾两回数据库连接操作,可以参考如下办法。

    INSERT INTO table(column1,column2,column3 ...columnN)  
    SELECT value1,value2,value3 ...valueN  
    FROM dual  
    WHERE NOT EXISTS(  
          SELECT *  
          FROM table  
          WHERE value = ?  
    );  

dual是为了构建查询语句而存在的表,Oracle中很常见,配合INSERT … SELECT构建成我们需要的表,并指定了数据项.
EXISTS通过这个判断是否存在的函数,就免去了我们做IF-ELSE的冗繁操作