常用SQL函数以及语法

函数

时间相关函数

MAX()
MIN()
COUNT(): 计算
CONCAT(): 连接
|
|
TO_DAYS(时间字段): 计算0000年到{时间字段}的天数

SELECT * FROM chat_log WHERE TO_DAYS(create_time) = TO_DAYS(NOW()); --查询今天的数据

|
|
REPLACE(字段, 待修改的字符串, 修改后的字符串): 替换字段中的字符串

SELECT REPLACE('hello, lilei', 'lilei', 'peter') --hello, peter

|
|
DATE_SUB(NOW(), INTERVAL 1 MINUTE/HOUR/DAY): 查询距今某个时间段的数据

SELECT * FROM javastudy.chat_log WHERE create_time > DATE_SUB(NOW(), INTERVAL 7 DAY);

|
|
IFNULL(字段, 设定值): 如果某个字段值为null, 则让它等于设定值

SELECT IFNULL(`password`, 'qqq') FROM javastudy.userinfo;

|
|
FIND_IN_SET(str, column)并且字段值之间用,分开。:查询字符串str是否在column

SELECT FIND_IN_SET('a', 'a,b,c,d'); -- 1

语法

INSERT IGNORE INTO table: 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉

REPLACE INTO: 如果存在primary or unique相同的记录,则先删除掉。再插入新记录。

INSERT INTO table (a, b) VALUES (A, B) ON DUPLICATE KEY UPDATE: 如果主键重复,就更新该条记录,否则就添加。

INSERT INTO `tb_user`(
    id,
    username,
    password
) VALUES (
    #{id},
    #{username},
    #{password}
) ON DUPLICATE KEY UPDATE
    username = #{username},
    password = #{password}

你可能感兴趣的:(常用SQL函数以及语法)