1、查询技巧 //今天 select * from 表名 where to_days(时间字段名) = to_days(now()); //昨天 SELECT * FROM 表名 WHERE TO_DAYS
1、将字符转换为数字 cast()函数 cast(colum as unsigned) select (1+1),('1'+'2'),(cast('1' as unsigned)+3); ?...2、MySQL实现行转列 (1)group by和group_concat()函数组合使用,substring_index(group_concat(),',',N)取前N个数据 (2)as取列名为别名...exp:表达式 v1:exp为真时返回的值 v2:exp为假时返回的值 8、case when... then... else... end case when函数可以镶嵌使用,相对if函数灵活...9、group by比distinct性能快,考虑性能优先使用group by去重 10、coalesce()函数处理空值 (1)coalesce(col,xxx) 将空值null替换成xxx (2)...()返回最大值和least()返回最小值 17、group_concat()函数:和group by使用,返回分组后指定列的集合
但是要保证每个字段有足够的空间以满足需求 字符串字段:因为mysql默认不区分大小写,如果字符串字段作为主键的话,需要将其改成bin类型,如 CREATE TABLE T( A VARCHAR..."查询语句" --skip-lock-tables --default-character-set=utf8 --no-create-info --quick > 数据表.sql 导入到测试环境 mysql...mysql中有一种插入数据库的写法,如果数据不存在则插入数据,如果存在满足唯一性索引的数据,则更新相应数据 INSERT INTO table (column_1, column_2, column_3...B.coupon AND A.record_time = B.record_time; 过滤没有变化的数据 根据前面查询出来的广告主的出价信息,如果广告主没有变更出价信息,则不插入 参考 Top 20+ MySQL
-- 导出基础参数select * into outfile '/data/mysql/3306/tmp/employees.txt'character set utf8mb4fields terminated...enclosed by '"'lines terminated by '\n'from employees.employees1 limit 10;-- 导入基础参数load data infile '/data/mysql
) SECOND() TIME_TO_SEC() TO_DAYS() WEEKDAY() YEAR() YEARWEEK() 等 当然,还有FLOOR(),CEILING() 等,前提是使用这两个分区函数的分区健必须是整型...EXPLAIN PARTITIONS跟踪发现都是全区扫描的,条件里加入WEEKDAY(visittime)这样的也不行 但是如果你插入的datetime字段是不带时间只有日期的话,where条件里没出现函数只用...=来判断日期,是可以分区搜索的 分区应该和索引一样,一但where中出现函数,就会全区扫描 下面的表PARTITION BY LIST (month(create_time)),Explain结果不太乐观...mysql> Explain partitions select * from rec_pay where create_time = ‘2014-06-01 00:00:00’ limit 20;...时发生 range:这个连接类型使用索引返回一个范围中的行,比如使用>或 index:以索引的顺序进行全表扫描,优点是不用排序,缺点是还要全表扫描 ALL:全表扫描,应该尽量避免 8 Extra:关于MYSQL
函数是 Go 语言的一等公民,如何利用好其高级用法特性,是一件值得思考和实践的事情 背景 在日常业务开发中,对于一些表的不同字段做筛选查询,是基础的功能。而且大部分可能是在根据不同条件去查询。...基于以上这种所有情况,有必要来优化一下 可以利用函数式编程来优化 定义如下 type Option func(*gorm.DB) 定义 Option 是一个函数,这个函数的入参类型是*gorm.DB,返回值为空...然后针对 表中需要筛选查询的字段定义一个函数,赋值 func OrderID(orderID int64) Option { return func(db *gorm.DB) { db.Where..., shopID) } } 所以需要为可能得字段来创建不同的函数,返回一个Option函数,该函数是把入参赋值给【db *gorm.DB】对象 所以基于以上,要改写dao层就很方便了。...orderID,shopID 组合查询 infos := GetOrderInfo(ctx, OrderID(orderID), ShopID(shopID)) 当然还根据其他 in 等条件查询,再写一个函数即可
MySQL 函数MySQL 有很多内置的函数,以下列出了这些函数的说明。----MySQL 字符串函数函数描述实例ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。...数字函数函数名描述实例ABS(x)返回 x 的绝对值返回 -1 的绝对值: SELECT ABS(-1) -- 返回1ACOS(x)求 x 的反余弦值(单位为弧度),x 为一个数值SELECT ACOS...;有2个参数时,将参数加和mysql> SELECT TIMESTAMP("2017-07-23", "13:10:11"); -> 2017-07-23 13:10:11 mysql> SELECT...高级函数函数名描述实例BIN(x)返回 x 的二进制编码15 的 2 进制编码: SELECT BIN(15); -- 1111BINARY(s)将字符串 s 转换为二进制字符串SELECT BINARY...WHEN conditionN THEN resultN ELSE result ENDCASE 表示函数开始,END 表示函数结束。
目录: 函数与存储过程的区别 创建函数 使用函数 查看函数 删除函数 函数也是一组预先编译回到SQL的集合,基本和存储过程相似。...创建函数 语法: create function 函数名称(参数列表) returns 返回类型 binlog参数 begin 函数体 end; 详解: 参数列表:参数名称 参数类型 binlog...参数: no sql:函数体中没有SQL语句,也不会修改数据 reads sql data:函数体中存在SQL语句,但是整个数据是只读的,不会修改数据 modifies sql data:函数体中存在SQL...语句,并且会修改数据 contains sql:函数体中包含有SQL语句 函数体:在函数体中必须包含return语句,讲return放在函数体的最后一行执行。...return input1+input2; end;// 使用函数 语法: select 函数名(参数列表); 查看函数 语法: show create function 函数名; 删除函数 语法:
函数相关内容。...UPPER() 获取左侧、右侧 字符 LEFT('MYSQL',2) RIGHT('MYSQL',2) LENGTH() LTRIM() RTRIM() TRIM() 例子,删除前导的字符 TRIM(LEADING...MYSQL???') 结果为 MYSQL???...字符串截取 SUBSTRING('MYSQL','1','2') 结果 MY 模式匹配 [NOT] LIKE % 任意字符 下划线 _ 任意一个字符 替换 REPLACE('??MYSQL??'...() 加密函数 MD5() PASSWORD() 自定义函数 创建函数 CREATE FUNCTION 函数名 RETURNS {STRING|INTEGER|REAL|DECIMAL} 函数体; 删除函数
extract(hour_minute from current_date); //返回两个日期值之间的差值(月数):select period_diff(200302,199802); //在mysql...在这种情况下,mysql提供了case函 数,它和php及perl语言的switch-case条件例程一样。...如果 没有指定else块,而且所有的when-then比较都不是真,mysql将会返回null。...示例: mysql> select case 'green' when 'red' then 'stop' when 'green' then 'go' end; select case 9 when...//为了进行数据类型转化,mysql提供了cast()函数,它可以把一个值转化为指定的数据类型。
OFFSET函数是我们经常会用到的一个函数,能够以某单元格为基点,偏移得到指定位置的单元格或者单元格区域。...下面以示例来讲解OFFSET函数的应用技巧。如下图1所示的数据工作表。 ?...图1 可以使用OFFSET函数配合SUM函数求出一季度9个区的数量之和: =SUM(OFFSET(B4,0,0,9,3)) 结果如下图2所示。 ?...将其传递给SUM函数求和。...我们让OFFSET函数与MATCH函数、COUNT函数配合使用,让公式能够动态求和,如下图3所示,在单元格C18中输入公式: =SUM(OFFSET(B4,0,MATCH(C15,B2:M2,0)-1,
,如下: 函数索引的字段数量受到表的字段总数限制 函数索引能够使用的函数与虚拟列上能够使用的函数相同 子查询,参数,变量,存储过程,用户定义的函数不允许在函数索引上使用 虚拟列本身不需要存储,函数索引和其他索引一样需要占用存储空间...函数索引可以使用 UNIQUE 标识,但是主键不能使用函数索引,主键要求被存储,但是函数索引由于其使用的虚拟列不能被存储,因此主键不能使用函数索引 如果表中没有主键,那么 InnoDB 将会使其非空的唯一索引作为主键...,因此该唯一索引不能定义为函数索引 函数索引不允许在外键中使用 空间索引和全文索引不能定义为函数索引 对于非函数的索引,如果创建相同的索引,将会有一个告警信息,而函数索引则不会 如果一个字段被用于函数索引...,那么删除该字段前,需要先删除该函数索引,否则删除该字段会报错 非函数索引支持对字段前缀进行索引,函数索引不支持前缀。...,SUBSTRING(col1, 1, 10) 可以使用函数索引。
笔者在查阅网上 SQL 优化的资料后成功解决了问题,在此从==全局角度==记录和总结 MySQL 查询优化相关技巧。 二、优化思路 数据查询慢,不代表 SQL 语句写法有问题。...笔者用一张流程图展示 MySQL 优化的思路: ?...无需更多言语,从图中可以清楚地看出,导致数据查询慢的原因有多种,如:缓存失效,在此一段时间内由于高并发访问导致 MySQL 服务器崩溃;SQL 语句编写问题;MySQL 服务器参数问题;硬件配置限制 MySQL...当访问高峰期时,一部分请求分流到未失效的缓存,另一部分则访问 MySQL 数据库,这样减少了 MySQL 服务器的压力。...单表查询:哪个列作查询条件,就在该列创建索引 2) 多表查询:left join 时,索引添加到右表关联字段;right join 时,索引添加到左表关联字段 3) 不要对索引列进行任何操作(计算、函数
MySQL安全小技巧,后面会慢慢补充。 mysql命令行有个参数 -U, --safe-updates Only allow UPDATE and DELETE that uses keys....我们可以做个别名 echo 'alias mysql="mysql -U"' >> /etc/profile source /etc/profile 这样的话,其他用户登录mysql,这个安全更新设置也是生效的了
1)在Linux上装了MySql后,别的机器用root用户连接时,发现连接不上 可用如下命令解决该问题: update user set host='%' where user=...host='localhost'; 2) 修改用户密码的命令: update user set password=PASSWORD('新密码') and user='root'; 3)恢复mysql...数据库 可在命令行下敲下如下命令,具体使用见下例: mysql -u root -proot -D 数据库名 < "C:/tmp/backup.sql"; 其中第一个...root为用户名,第二个root为密码; 4)备份MySql数据库 在命令行下使用mysqldump命令,举例如下: i) mysqldump -u root -proot
Mysql常用函数的汇总,可看下面文章 https://www.cnblogs.com/poloyy/p/12890763.html if 的作用 根据表达式的某个条件或值结果来执行一组 sql 语句...Mysql 中怎么才算表达式?...结合文字,变量,运算符,甚至函数来组合 表达式可以返回 true、false、null if 的语法格式 IF(expr,v1,v2) 语法格式说明 expr:表达式,返回 true、false、null...栗子: SQL分析 查询员工的name、在职状态 在职状态通过 if 函数去判断,返回【在职】or【离职】 select name,if(is_enable = 1,"在职","离职") "在职状态"
1、MySQL 函数介绍 1.1、MySQL 函数简介 函数是指一段可以直接被另一段程序调用的程序或代码。...2.1、MySQL 函数分类 MySQL 函数按功能分类主要可以分为以下几种类型: 数学函数:用于执行数学计算,如加法、减法、乘法、除法、取余、四舍五入、取绝对值等。...2、MySQL 数学函数 MySQL 提供了多种数学函数,可以帮助用户执行各种数学运算,包括基本的算术运算、三角函数、对数运算等。...4、MySQL 日期和时间函数 在 MySQL 中,日期和时间函数允许你操作和格式化存储在数据库中的日期和时间值。这些函数能够帮助你提取日期和时间的特定部分、计算日期和时间差、格式化日期和时间输出等。...聚合函数 在 MySQL 中,聚合函数是用于对一组值执行计算,并返回单个值的函数。
1.数学函数 用来处理数值数据方面的运算,主要的数学函数有:绝对值函数,三角函数,对数函数,随机函数。使用数学函数过程中,如果有错误产生,该函数会返回null值。... 处理字符串数据,字符串函数主要有:计算字符串长度函数、字符串合并函数、字符串转换函数、字符串比较函数、查找指定字符串位置函数。...(1)日期时间函数 时间转化秒函数:time_to_sec MySQL> select time_to_sec('01:01:01'); +-------------------------+ | time_to_sec...---------+ | 01:01:01 | +-------------------+ 1 row in set (0.00 sec) 日期转为天数函数:to_days mysql> select...> (2)数值函数 ABS(X) :返回表达式X的绝对值 mysql> select abs(-2); +---------+ | abs(-2) | +---------+ | 2 | +-----
python有许多实用函数,合理实用可以大幅精简代码。本篇博文旨在记录一些常用的操作技巧,以便重复使用时快速查阅,会持续进行更新。 读取txt文件 data = np.genfromtxt('....返回列表中最多次出现过的数 cx = max(label_list, key=label_list.count) 返回数组中非零元素的位置 nozero_index = np.nonzero() 这个函数更多的实用案例可参考...可直接调用下面封装好的函数。
方案三、vlookup 函数 vlookup 函数是 excel 中的一个函数,可以用于纵向查找,函数语法如下: ?...这个函数一共有四个参数,第一个是要查找的值,第二个参数是查找区域,第三个参数是需要返回的值所在的列的序号,第四个参数代表是精确匹配还是模糊匹配。 好了,函数讲解完成,很简单吧。 ?...其实这个函数也挺简单的嘛,建议多练习一下,以备不时之需。即使不想学也没关系,至少得知道 Excel 可以实现这样的功能,下次需要的时候再查也无妨。
领取专属 10元无门槛券
手把手带您无忧上云