【mysql】 操作 收集持续更新
查询指定天数的数据(查询7天前状态等于2的数据)
SELECT * FROM table where DATE_SUB(DATE_FORMAT(CURDATE(),"%Y-%m-%d"), INTERVAL 7 DAY) >= DATE_FORMAT(F_CreatorTime,"%Y-%m-%d") and F_Status=2 order by F_CreatorTime desc;
日期加减天数
MySQL 为日期增加一个时间间隔:date_add() now() //now函数为获取当前时间 select date_add(now(), interval 1 day); - 加1天 select date_add(now(), interval 1 hour); -加1小时 select date_add(now(), interval 1 minute); - 加1分钟 select date_add(now(), interval 1 second); -加1秒 select date_add(now(), interval 1 microsecond);-加1毫秒 select date_add(now(), interval 1 week);-加1周 select date_add(now(), interval 1 month);-加1月 select date_add(now(), interval 1 quarter);-加1季 select date_add(now(), interval 1 year);-加1年 MySQL adddate(), addtime()函数,可以用date_add() 来替代。 2. MySQL 为日期减去一个时间间隔:date_sub() MySQL date_sub() 日期时间函数 和date_add() 用法一致。 MySQL 中subdate(),subtime()函数,建议,用date_sub()来替代。
中文按首字母排序(不区分多音字)
select Id,`Name` from Area where `Level`= 4 order by convert(`Name` using gbk) asc
mysql表名区分大小写
windows下修改my.ini,配置如下
[mysqld]
lower_case_table_names=
注:Linux为0
一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据
GROUP_CONCAT(Name SEPARATOR ',')
需注意:
1.GROUP_CONCAT()中的值为你要合并的数据的字段名;
SEPARATOR 函数是用来分隔这些要合并的数据的;
' '中是你要用哪个符号来分隔;
2.必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录
根据经纬度计算两点间的距离
CREATE FUNCTION `fnGetDistance`(`longitude1` DECIMAL(10,7),`latitude1` DECIMAL(10,7),`longitude2` DECIMAL(10,7),`latitude2` DECIMAL(10,7)) RETURNS bigint(20)
BEGIN
DECLARE Distance REAL DEFAULT 0;
SET Distance = ROUND(6378.137*2*ASIN(SQRT(POW(SIN((latitude1*PI()/180-latitude2*PI()/180)/2),2)+COS(latitude1*PI()/180)*COS(latitude2*PI()/180)*POW(SIN((longitude1*PI()/180-longitude2*PI()/180)/2),2)))*1000);
RETURN Distance;
END
修改使用子查询赋值
update `Menu` set ParentId=(select p.id from (SELECT id from `Menu` where MenuName='业务') p) where MenuName='视频';
模糊搜索 常用的一共有4个方法,如下:
1. 使用locate()方法
1.1.普通用法:
SELECT `column` from `table` where locate('keyword', `condition`)>0
类似于 java 的 indexOf();不过 locate() 只要找到返回的结果都大于0(即使是查询的内容就是最开始部分),没有查找到才返回0;
1.2. 指定其实位置:
SELECT LOCATE('bar', 'foobarbar',5); --> 7 (从foobarbar的第五个位置开始查找)
2.使用instr()函数 (据说是locate()的别名函数)
SELECT `column` from `table` where instr(`condition`, ‘keyword’ )>0
唯一不同的是 查询内容的位置不同,见SQL语句中过的keyword
3.使用position()方法,(据说也是locate()方法的别名函数,功能一样)
SELECT `column` from `table` where position(‘keyword’ IN `condition`)
不过它不再是通过返回值来判断,而是使用关键字 in
4.使用find_in_set()函数
如: find_in_set(str,strlist),strlist必须要是以逗号分隔的字符串
如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N
SQL> SELECT FIND_IN_SET('b','a,b,c,d'); +---------------------------------------------------------+ | SELECT FIND_IN_SET('b','a,b,c,d') | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
总结: locate、position 和 instr 的差別只是参数的位置不同,同时locate 多一个起始位置的参数外,两者是一样的。
find_in_set()是个比较特殊的存在,但它们都是返回要查找的子字符串 在 指定字符串中的位置。
速度上前3个比用 like 稍快了一点。(不过这四个函数都不能使用索引,这是个遗憾)
出现中文乱码解决:
修改my.ini文件,添加如下配置
[client]
default-character-set=utf8 [mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
中文乱码参考:http://www.cnblogs.com/songdada119/p/5923219.html
添加数据库报错:[Err] 1366 - Incorrect string value: '\xE4\xBB\x8E\xE5\x85\xA5...' for column 'name' at row 1,这样因为添加数据中存在中文
解决:检查当前字段字符集格式
【mysql】 操作 收集持续更新的更多相关文章
- Mysql操作笔记(持续更新)
1.mysqldump备份导出 备份成sql mysqldump -hlocalIp -uuserName -p --opt --default-character-set=utf8 --hex-bl ...
- 【oracle笔记1】基础知识大集锦:增删改,数据类型,用户操作,持续更新中···
什么是数据库?数据库就是用来存储和管理数据的仓库.首先我来简单介绍一下各数据库的背景,常见的数据库如下,oracle:甲骨文公司(市场占用率最高),oracle也是一个公司名,翻译过来就是甲骨文的意思 ...
- mysql数据库操作记录持续更新...
1.查看删除数据库表的唯一约束 SHOW INDEX FROM tbl_name (唯一约束也是索引) ALTER TABLE tbl_name DROP INDEX index_name 2.u ...
- MySQL问题总结(持续更新)
CHAR和VARCHAR的区别 存储方式和检索方式不同: 1.CHAR固定长度字符类型.CHAR存储定长数据,CHAR字段上的索引效率高,比如定义char(10),那么不论你存储的数据是否达到了10个 ...
- appium 版本更新后的方法变化更新收集 ---持续更新
在高版本的android手机(例如android 7.0 , 8.0等等),必须使用高版本的appium, 以及对应的selenium版本,那么很多的appium或者selenium方法会变得无法直接 ...
- mysql日常笔记(持续更新)
常用场景 sql_mode问题:http://blog.csdn.net/ccccalculator/article/details/70432123 连续日期补全/数据补零操作 在不使用存储过程和函 ...
- mysql问题汇总——持续更新
1.this is incompatible with sql_mode=only_full_group_by set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_ ...
- DB2 数据库常用操作【持续更新】
好久没写博客了. 上次还是两个月前. 1. 连接数据库 db2 connect to dbName user userName using password 2. 查看表结构 db2 "de ...
- MySql报错(持续更新)
目录 MySql报错 1. 重复键报错1062- duplicate entry '0' for key 'xxx' 1.1 报错场景 1.2 报错原因 1.3 解决方法 1.4 具体举例 2. VS ...
随机推荐
- MapReduce 原理与 Python 实践
MapReduce 原理与 Python 实践 1. MapReduce 原理 以下是个人在MongoDB和Redis实际应用中总结的Map-Reduce的理解 Hadoop 的 MapReduce ...
- Flex: Holy Grail
Flex:Holy Grail <html> <head> <style type="text/css"> body,div,header,ma ...
- Node.js之事件监听和发送
演示事件的发送和监听 const events = require("events"); function Account() { this.balance = 0; events ...
- WebP 图片实践之路
我们会从三部分来聊聊webp这个话题. 什么是webp,它有什么用? 使用webp的常规方法以及优劣. 我们是如何用上webp的. PS:如果是对webp有一定了解的朋友,建议直接看第三部分.因为是讲 ...
- java里程碑之泛型--深入理解泛型
所谓泛型,就是允许在定义类,接口,方法时使用类型形参,这个类型形参将在声明变量,创建对象,调用方法的时候动态的指定.JAVA5之后修改了集合中所有的接口和类,为这些接口和类都提供了泛型的支持. 关于泛 ...
- Spring MVC 配置文件dispatcher-servlet.xml 文件详解(转自 学无止境-yj)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 配置struts2拦截器
<!-- 配置拦截器 --> <interceptors> <!-- 声明拦截器 --> <inte ...
- Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)
我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...
- 锐捷配置telnet
.组网需求 通过Telnet功能远程登录管理设备. 二.组网拓扑 三.配置要点 1.需要给交换机配置一个管理IP,如果PC与交换机不是同一个网段,需要给交换机配置一个默认网关 2.需要配置一个 ...
- [C#] 获取计算机内部信息 - ComputerInfoHelper
获取计算机内部信息 - ComputerInfoHelper 电脑有许多信息,如名称.CPU 和硬盘容量等,整理一个 Helper 来获取,下面目前只整理了一个方法,获取其它信息的方法类似. 一.代码 ...