查询指定天数的数据(查询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】 操作 收集持续更新的更多相关文章

  1. Mysql操作笔记(持续更新)

    1.mysqldump备份导出 备份成sql mysqldump -hlocalIp -uuserName -p --opt --default-character-set=utf8 --hex-bl ...

  2. 【oracle笔记1】基础知识大集锦:增删改,数据类型,用户操作,持续更新中···

    什么是数据库?数据库就是用来存储和管理数据的仓库.首先我来简单介绍一下各数据库的背景,常见的数据库如下,oracle:甲骨文公司(市场占用率最高),oracle也是一个公司名,翻译过来就是甲骨文的意思 ...

  3. mysql数据库操作记录持续更新...

    1.查看删除数据库表的唯一约束 SHOW INDEX FROM tbl_name (唯一约束也是索引) ALTER TABLE tbl_name DROP INDEX index_name   2.u ...

  4. MySQL问题总结(持续更新)

    CHAR和VARCHAR的区别 存储方式和检索方式不同: 1.CHAR固定长度字符类型.CHAR存储定长数据,CHAR字段上的索引效率高,比如定义char(10),那么不论你存储的数据是否达到了10个 ...

  5. appium 版本更新后的方法变化更新收集 ---持续更新

    在高版本的android手机(例如android 7.0 , 8.0等等),必须使用高版本的appium, 以及对应的selenium版本,那么很多的appium或者selenium方法会变得无法直接 ...

  6. mysql日常笔记(持续更新)

    常用场景 sql_mode问题:http://blog.csdn.net/ccccalculator/article/details/70432123 连续日期补全/数据补零操作 在不使用存储过程和函 ...

  7. mysql问题汇总——持续更新

    1.this is incompatible with sql_mode=only_full_group_by set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_ ...

  8. DB2 数据库常用操作【持续更新】

    好久没写博客了. 上次还是两个月前. 1. 连接数据库 db2 connect to dbName user userName using password 2. 查看表结构 db2 "de ...

  9. MySql报错(持续更新)

    目录 MySql报错 1. 重复键报错1062- duplicate entry '0' for key 'xxx' 1.1 报错场景 1.2 报错原因 1.3 解决方法 1.4 具体举例 2. VS ...

随机推荐

  1. MapReduce 原理与 Python 实践

    MapReduce 原理与 Python 实践 1. MapReduce 原理 以下是个人在MongoDB和Redis实际应用中总结的Map-Reduce的理解 Hadoop 的 MapReduce ...

  2. Flex: Holy Grail

    Flex:Holy Grail <html> <head> <style type="text/css"> body,div,header,ma ...

  3. Node.js之事件监听和发送

    演示事件的发送和监听 const events = require("events"); function Account() { this.balance = 0; events ...

  4. WebP 图片实践之路

    我们会从三部分来聊聊webp这个话题. 什么是webp,它有什么用? 使用webp的常规方法以及优劣. 我们是如何用上webp的. PS:如果是对webp有一定了解的朋友,建议直接看第三部分.因为是讲 ...

  5. java里程碑之泛型--深入理解泛型

    所谓泛型,就是允许在定义类,接口,方法时使用类型形参,这个类型形参将在声明变量,创建对象,调用方法的时候动态的指定.JAVA5之后修改了集合中所有的接口和类,为这些接口和类都提供了泛型的支持. 关于泛 ...

  6. Spring MVC 配置文件dispatcher-servlet.xml 文件详解(转自 学无止境-yj)

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. 配置struts2拦截器

    <!-- 配置拦截器 -->        <interceptors>            <!-- 声明拦截器 -->            <inte ...

  8. Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)

    我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...

  9. 锐捷配置telnet

    .组网需求 通过Telnet功能远程登录管理设备.   二.组网拓扑   三.配置要点 1.需要给交换机配置一个管理IP,如果PC与交换机不是同一个网段,需要给交换机配置一个默认网关 2.需要配置一个 ...

  10. [C#] 获取计算机内部信息 - ComputerInfoHelper

    获取计算机内部信息 - ComputerInfoHelper 电脑有许多信息,如名称.CPU 和硬盘容量等,整理一个 Helper 来获取,下面目前只整理了一个方法,获取其它信息的方法类似. 一.代码 ...