mysql max 与 where 间的执行问题小结
mysql max 与 where 间的执行问题
执行sql:
CREATE TABLE `grades` ( `id` int(20) NOT NULL AUTO_INCREMENT, `student_id` int(20) NOT NULL, `subject` varchar(20) COLLATE utf8_bin DEFAULT NULL, `grades` varchar(20) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; insert into `grades`(`id`,`student_id`,`subject`,`grades`) values (1,1,'语文','80'),(2,1,'数学','89'),(3,2,'语文','90'); CREATE TABLE `student` ( `id` int(20) NOT NULL AUTO_INCREMENT, `name` varchar(20) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; insert into `student`(`id`,`name`) values (1,'xiaoming'),(2,'xiaohong'),(3,'xiaobai');
执行结果:
执行结果1:
执行结果2:
执行结果3:
执行结果4:
执行结果5:
由此可见:
1.max是在where条件之前执行的,
2.而group by 又是在max之前执行的
3.当where 与 group by 同时出现 优先执行where条件
总结
以上所述是小编给大家介绍的mysql max 与 where 间的执行问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
您可能感兴趣的文章:
- MySQL左联多表查询where条件写法示例
- MySQL Where 条件语句介绍和运算符小结
- MySQL 存储过程传参数实现where id in(1,2,3,...)示例
- 解析mysql left( right ) join使用on与where筛选的差异
- UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE noteexists
- MYSQL where 1=1判定中的作用说明
- MySQL中的max()函数使用教程
- MySQL性能优化之max_connections配置参数浅析
- mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)
相关推荐
-
mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)
MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置: 复制代码 代码如下: show VARIABLES like '%max_allowed_packet%'; 显示的结果为: 复制代码 代码如下: +--------------------+---------+| Variable_name | Value |+--------------------+----
-
MYSQL where 1=1判定中的作用说明
于是在网上 查了查,在这里就浅谈一下: 1=1 永真, 1<>1 永假. 1<>1 的用处: 用于只取结构不取数据的场合 例如: create table table_temp tablespace tbs_temp as select * from table_ori where 1<>1 建成一个与table_ori 结构相同的表table_temp,但是不要table_ori 里的数据.(除了表结构,其它结 构也同理) 1=1的用处 用于动态SQL 例如 lv_s
-
MySQL左联多表查询where条件写法示例
复制代码 代码如下: select * from _test a left join _test b on a.id=b.id where a.level='20' and a.month='04' and b.level='20' and b.month='03'; select a.*,b.* from (select * from _test where level='20' and month='04') as a left join (select * from _test where
-
MySQL 存储过程传参数实现where id in(1,2,3,...)示例
正常写法: 复制代码 代码如下: select * from table_name t where t.field1 in (1,2,3,4,...); 当在写存储过程in里面的列表用个传入参数代入的时候,就需要用到如下方式: 主要用到find_in_set函数 复制代码 代码如下: select * from table_name t where find_in_set(t.field1,'1,2,3,4'); 当然还可以比较笨实的方法,就是组装字符串,然后执行: 复制代码 代码如下: DRO
-
MySQL性能优化之max_connections配置参数浅析
MySQL的max_connections参数用来设置最大连接(用户)数.每个连接MySQL的用户均算作一个连接,max_connections的默认值为100.本文将讲解此参数的详细作用与性能影响. 与max_connections有关的特性 MySQL无论如何都会保留一个用于管理员(SUPER)登陆的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections.因此MySQL的实际最大可连接数为max_connections+1: 这个参数实际起作用的最大值
-
解析mysql left( right ) join使用on与where筛选的差异
有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异.可能只看着两个关键字看不出任何的问题.那我们使用实际的例子来说到底有没有差异. 例如存在两张表结构表结构1 复制代码 代码如下: drop table if EXISTS A; CREATE TABLE A ( ID int(1) NOT NULL, PRIMARY KEY (ID) ) ENGINE=MyISAM DEFAULT CHARSET=lat
-
UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE noteexists
大家先看下数据库权限问题,然后再进行如下操作. SQL:SELECT value FROM [Table]vars WHERE name='noteexists2′ UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE name='noteexists2′ Error:SELECT command denied to user '数据库'@'IP地址' for table 'pre_ucenter_vars
-
MySQL中的max()函数使用教程
MySQL的max()函数是用来找出一个记录集中的最大值记录. 要了解MAX功能考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1
-
MySQL Where 条件语句介绍和运算符小结
WHERE 条件 有时候操作数据库时,只操作一些有条件限制的数据,这时可以在SQL语句中添加WHERE子句来规定数据操作的条件. 语法: 复制代码 代码如下: SELECT column,- FROM tb_name WHERE definition WHERE 关键字后面接有效的表达式(definition),该表达式表示被操作的数据记录必须满足的条件. 除 SELECT 外,WHERE 条件关键字可以用于任何 SQL 语法允许的场合,如 UPDATE(更新).DELETE(删除)等. 例子:
-
mysql max 与 where 间的执行问题小结
mysql max 与 where 间的执行问题 执行sql: CREATE TABLE `grades` ( `id` int(20) NOT NULL AUTO_INCREMENT, `student_id` int(20) NOT NULL, `subject` varchar(20) COLLATE utf8_bin DEFAULT NULL, `grades` varchar(20) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`) )
-
根据mysql慢日志监控SQL语句执行效率
根据mysql慢日志监控SQL语句执行效率 启用MySQL的log-slow-queries(慢查询记录). 在Linux环境下先要找到my.cnf文件(一般在/etc/mysql/),然后可能会发现该文件修改后无法保存,原因是你没有相应的权限,可以从属性中看到该文件的所有者是root,这时要先以root的身份打开它: sudo nautilus /etc/mysql 接着再打开my.cnf文件然后找到[mysqld]标签在下面加上: log-slow-queries=/path/slow.lo
-
mysql通过文档读取并执行命令之快速为mysql添加多用户和数据库技巧
复制代码 代码如下: # vi mysqlusers.txt create database dataname; grant all privileges on dataname.* to username@localhost identified by 'password'; flush privileges; # /usr/local/mysql/bin/mysql -u root -p password < mysqlusers.txt 蓝色斜体部分为对应的用户名和密码,添加多个用户及数据
-
浅谈Mysql多表连接查询的执行细节
先构建本篇博客的案列演示表: create table a(a1 int primary key, a2 int ,index(a2)); --双字段都有索引 create table c(c1 int primary key, c2 int ,index(c2), c3 int); --双字段都有索引 create table b(b1 int primary key, b2 int); --有主键索引 create table d(d1 int, d2 int); --没有索引 insert
-
解决mysql数据库设置远程连接权限执行grant all privileges on *.* to 'root'@'%' identified by '密码' with grant optio报错
mysql数据库设置远程连接权限,执行grant all privileges on *.* to 'root'@'%' identified by '密码' with grant optio报错 ERROR1558 (HY000): Column count ofmysql.user is wrong. Expected 43, found 42. Created with MySQL 50556, now running 50639. Please use mysql_upgrade to
-
Mysql表,列,库增删改查问题小结
下面是我总结的一些基础的sql知识,主要是为了以后更好的查阅和帮助其他初学的人,同时记录自己的成长,还写了一点稍有 难度的sql面试题级别的题目,好了废话不多说,见真题... #创建数据库 CREATE DATABASE mytest CHARACTER SET gbk #删除数据库 DROP DATABASE mytest 表的操作 #创建表(create table 表名(columns)) CREATE TABLE students( id INT PRIMARY KEY, NAME CH
-
MySQL的几种安装方式及配置问题小结
1.MySQL rpm包安装 # 下载安装源 [root@localhost src]# wget https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # 安装源 [root@localhost src]# rpm -ivh mysql-community-release-el7-5.noarch.rpm 2.MySQL yum工具安装 [root@localhost /]# yum install -y mysq
-
Mysql update多表联合更新的方法小结
下面我建两个表,并执行一系列sql语句,仔细观察sql执行后表中数据的变化,很容易就能理解多表联合更新的用法 student表 class表 1. 执行 UPDATE student s , class c SET s.class_name='test00',c.stu_name='test00' WHERE s.class_id = c.id student表 class表 2. 执行 UPDATE student s JOIN class c ON s.class_id = c.id SET
-
Mysql 常用的时间日期及转换函数小结
本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now() :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.curdate() :返回当前日期 select curdate(); //2018-04-21 3. dayofweek(data) : 返回日期 data 是星期几 (1 = 星期日,2 =星期一...7=星期六,ODBC标准) select dayofweek('2018-02-13'); /
-
Python 脚本的三种执行方式小结
1.交互模式下执行 Python,这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可. 1)打开交互模式的方式: Windows下: 在开始菜单找到"命令提示符",打开,就进入到命令行模式: 在命令行模式输入: python 即可进入 Python 的交互模式 Linux 下: 直接在终端输入 python,如果是按装了 python3 ,则根据自己建的软连接的名字进入对应版本的 Python 交互环境,例如我建立软连接使用的 pyt
随机推荐
- Android中gravity、layout_gravity、padding、margin的区别小结
- 完成了AJAX树附原理分析
- FTP服务器设置虚拟目录(Serv-u与FileZilla Server)
- try catch finally的执行顺序深入分析
- python的mysqldb安装步骤详解
- 深入理解JavaScript系列(34):设计模式之命令模式详解
- VS2015在升级到Update2之后运行Cordova项目异常的解决方案
- 微信公众平台支付开发详解
- javascript限制文本框输入值类型的方法
- MySQL 常见数据拆分办法
- mysql创建Bitmap_Join_Indexes中的约束与索引
- nginx强制使用https访问的方法(http跳转到https)
- 谈谈对Java多态性的一点理解
- Android adb.exe程序启动不起来 具体解决方法
- Java中static关键字的作用和用法详细介绍
- Android使用VideoView播放本地视频和网络视频的方法
- C#自定义字符串替换Replace方法实例
- 微信小程序实现文字跑马灯效果
- p5.js实现斐波那契螺旋的示例代码
- mysql通过Navicat分区实操讲解