当前位置:网站首页>What are the precautions for MySQL group by
What are the precautions for MySQL group by
2022-07-05 17:14:00 【1024 questions】
1.group by Can't add after where
2.having or group by Can be used alone
3.having and group by You can use aliases
Why? where You can't use aliases ? by having But you can ?
summary
Preface :
Be careful : The following content of this article is based on MySQL 5.7 InnoDB Database engine .
1.group by Can't add after wherestay MySQL in , be-all SQL The query syntax should follow the following syntax order :
select
from
where
group by
having
order by
limit
The above grammatical order is not interchangeable , Otherwise, the report will be wrong . For example, we can't group by Then add where Query statement , Otherwise, the following error will occur :

The execution of the syntax sequence is and MySQL Of select Statement execution order related ,select The order of execution is as follows :
from Stage
where Stage
group Stage
having Stage
select Stage
order by Stage
limit Stage
Be careful : among select A special , When writing query statements , Write it first , Other grammatical order shall be consistent with the execution order .
2.having or group by Can be used alonehaving and group by Can be used alone , The following query is shown :

** When having When used alone , Its role and where similar , But there are subtle differences .** For example where Alias cannot be used in , but having and group by But it can be another name . Let's create a test table to demonstrate , Build table SQL as follows :
drop table if exists student_score;create table student_score( id int primary key auto_increment comment ' Primary key ', name varchar(250) comment ' full name ', math decimal(4,1) comment ' Math scores ', chinese decimal(4,1) comment ' Chinese achievement ');insert into student_score(name,math,chinese) values(' Zhang San ',50,50),(' Li Si ',80,80),(' Wang Wu ',90,90);The data in the table is shown in the figure below :

When we use the total score alias total Respectively in where and having When used in , The query results are as follows :

As can be seen from the above results ,having Queries can use select Alias in , and where Cannot use alias . except having You can use something other than an alias ,group by You can also use aliases ,
As shown in the figure below :

where Alias cannot be used in , This sum MySQL Statement execution order ,MySQL The execution order of the statements is as follows :
from Stage
where Stage
group Stage
having Stage
select Stage
order by Stage
limit Stage
in other words ,** In execution where When inquiring ,select Not yet implemented , So in where You want to use a that has not yet been executed select Aliases in are not acceptable .** From the above execution sequence, you can see ,having Execution is also select Before , Why can it be used select The alias in ?
This is because MySQL stay 5.7.5 After that, it was extended , Allow in having Use aliases , There are corresponding instructions in the official documents ,
As shown in the figure below :

MySQL Official document address :
summaryPS:group by Be able to use the principle and having similar .
SQL Statements must be written in this order :select、from、where、group by、having、order by、limit. among having or group by Can be used alone , And in MySQL 5.7.5 after ,group by and having You can use alias queries , but where Cannot use alias .
This is about MYSQL group by What are the precautions ? This is the end of the article , More about MYSQL group by Please search the previous articles of software development network or continue to browse the relevant articles below. I hope you will support software development network more in the future !
边栏推荐
- Error in compiling libssh2. OpenSSL cannot be found
- Is it safe for qiniu business school to open a stock account? Is it reliable?
- Embedded-c Language-5
- 浏览器渲染原理以及重排与重绘
- The second day of learning C language for Asian people
- winedt常用快捷键 修改快捷键latex编译按钮
- 一文了解Go语言中的函数与方法的用法
- 【剑指 Offer】61. 扑克牌中的顺子
- Excuse me, is the redis syntax used in DMS based on the commands of the redis community version of the cloud database
- 一文了解MySQL事务隔离级别
猜你喜欢
随机推荐
拷贝方式之DMA
Embedded UC (UNIX System Advanced Programming) -1
The first EMQ in China joined Amazon cloud technology's "startup acceleration - global partner network program"
Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem
启牛商学院股票开户安全吗?靠谱吗?
机器学习02:模型评估
Application of threshold homomorphic encryption in privacy Computing: Interpretation
微信公众号网页授权登录实现起来如此简单
Embedded -arm (bare board development) -1
How can C TCP set heartbeat packets to be elegant?
The survey shows that the failure rate of traditional data security tools in the face of blackmail software attacks is as high as 60%
Is it safe for qiniu business school to open a stock account? Is it reliable?
美国芯片傲不起来了,中国芯片成功在新兴领域夺得第一名
【testlink】TestLink1.9.18常见问题解决方法
First day of learning C language
国内首家 EMQ 加入亚马逊云科技「初创加速-全球合作伙伴网络计划」
flask解决CORS ERR 问题
机器学习01:绪论
Excuse me, is the redis syntax used in DMS based on the commands of the redis community version of the cloud database
手机开证券账户安全吗?怎么买股票详细步骤






![[Web attack and Defense] WAF detection technology map](/img/7c/60a25764950668ae454b2bc08fe57e.png)


