今天优化数据库的慢查询,有一条Sql让我百思不得其jie,就是他了. SELECT * FROM test WHERE user_id=1; 用explain 去分析一下 索引都有了,为什么还要扫描全表呢?类似的情况,有在哪闪现过,就去查看表结构,原来user_id这个字段是字符类型,做个记录,以免日后再犯傻. 以下是用不到索引的几种情况 表字段用的字符串类型,查询的也应该是字符类型 LIKE 查询 对字段进行NULL判断 使用OR关键字查询,使用UNION代替OR…
今天遇到一个问题,那就是当时一个项目设计表的时候,把时间以20160101123596这样的形式,以varchar存到了数据库里. 今天要写一条sql,查询一个报表,条件就是要过滤这个时间,但是varchar类型的,要怎么办呢? 经过google得到这样的答案,现在总结一下 CAST(field as type); field是数据库字段,可以是任意类型的,而type,则是你要转换出的类型,类型有下面几种 二进制,同带binary前缀的效果 : BINARY 字符型,可带参数 : CHAR()…
1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注:不必死记硬背,如果使用关键字作为标识符,编译器能提示错误. goto 是java的保留关键字,意思是java并没有使用goto,以后是否使用未定. 2 标识符 2.1 什么是标识符 就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class 后跟的Demo,…
类型检测及自动类型转换 is运算符用于检测一个表达式是否为某类型的一个实例检测出为某类型后,检测后的分支中可以直接当作该类型使用,无需显示转换 fun getStringLength(obj: Any): Int? { if (obj is String) { return obj.length } return null } 循环 for fun main(args: Array<String>) { val items = listOf(1, 2, 3) for (item in item…
js字符串转换为数字的三种方法.(转换函数)(强制类型转换)(利用js变量弱类型转换) 一.总结 js字符串转换为数字的三种方法(parseInt("1234blue"))(Number( "5.5 "))(x = x*1) 1.js字符串转换为数字的三种方法:转换函数.强制类型转换.利用js变量弱类型转换. 2.parseInt("1234blue"); //returns 1234 3.Number( "5.5 ") 5.…
java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换 一.字符串与其他类型连接 public class DemoString{ public static void main(String[] args){ System.out.println(5 + 5 + " 5 + 5 = " + 5 +5 ); } } 输出 out: 105 + 5 55 why? 自左向右运算,+号有字符串参与的话就是连接的作用,因为他没法直接运算. 任何类型和字符串相加都会变成…
本文将介绍如何优化特定类型的查询. 1.优化count()查询count()聚合函数,以及如何优化使用了该函数的查询,很可能是mysql中最容易被误解的前10个话题之一 count() 是一个特殊的函数,有两种非常不同的作用.它可以统计某个列值的数量,也可以统计行数.统计列值 要求列值是非空的.(不统计null,即null值计数为0) count()的另一个用处是统计结果集的行数.当mysql确认括号的表达式值不可能为空时,实际上就是统计行数.最简单的就是当我们使用count(*)的时候,这种情…
问题 有如下查询: SELECT * FROM <table-name> WHERE price > 32.99; 结果竟然包含了 32.99 的数据行. 原因 price 的类型是 double,会存在精度丢失问题,作为条件查询或者 sum 等聚合函数时结果会不准确 解决 将 double 类型转化为 decimal 查询: SELECT * FROM <table-name> WHERE CAST(price AS DECIMAL(7, 2)) > 32.99; 参…
内容目录 简介mysql时间类型DATE_FORMAT()函数 简介 今天开发中,做一个功能需要对历史数据进行补充,相信大家也遇到过这样的情况,这个历史数据需要按月份和人的id进行区分,于是想到了mysql的时间格式化,这样直接写个sql脚本就不需要程序去执行了,在做到这一块时我个人对时间这一块没有详细了解过,所以借助这个机会整理一下mysql时间相关的内容,其实我这次主要用的是时间格式转换功能,脚本如下 1INSERT INTO `xxxx`.`xxxxx`(`years_month`, `r…
原文链接:https://www.cnblogs.com/cuizhf/archive/2013/05/17/3083988.html Mysql关于bit类型的用法: 官方的资料如下: 9.1.5. 位字段值 可以使用b'value'符号写位字段值.value是一个用0和1写成的二进制值. 位字段符号可以方便指定分配给BIT列的值: mysql> CREATE TABLE t (b BIT(8)); mysql> INSERT INTO t SET b = b'11111111'; mysq…