记录不常用的 sql 语句集合(持续更新)
在工作中常常遇到一些特殊的需求,由此遇到一些不常用的 sql 语句,创建一个博客记录一下,以备不时之需:
- 修改指定记录的时间-延长有效期
//解释:now()函数代表当前时间,date_add()在第一个参数的基础上增加n天,实际应用中n为具体数字
UPDATE `am_xxx_config` set end_dt = date_add(now(), interval n day) WHERE xxx_id = '2019032809312121'
//实例:在将end_dt字段设置为当前时间+20天
UPDATE `am_xxx_config` set end_dt = date_add(now(), interval 20 day) WHERE xxx_id = '2019032809312121'
- 查询同一个用户ID(或者其它)下具有两条及以上指定信息记录的用户(或其它)
//解释:查询表 xxx_table_name 中,xxx_id 为 yyy 按照 yyy_id 分组,并且分组后的记录中 www_id 数量大于1
SELECT * FROM `xxx_table_name` WHERE xxx_id = 'yyy' GROUP BY yyy_id HAVING COUNT(www_id) >1
//实例:查询表 user_member_task_process 中 task_config_id 为45678的记录,然后按照 user_id进行分组,只保留记录数大于 1 条的分组
SELECT * FROM `user_member_task_process` WHERE task_config_id = '45678' GROUP BY user_id HAVING COUNT(task_config_id) >1