当前位置:网站首页>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 !
边栏推荐
- Little knowledge about C language (array and string)
- [61dctf]fm
- 【Web攻防】WAF检测技术图谱
- Wechat official account web page authorization login is so simple
- Thoughtworks 全球CTO:按需求构建架构,过度工程只会“劳民伤财”
- Use of ThinkPHP template
- China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
- 关于mysql中的json解析函数JSON_EXTRACT
- American chips are no longer proud, and Chinese chips have successfully won the first place in emerging fields
- mysql如何使用JSON_EXTRACT()取json值
猜你喜欢

CMake教程Step2(添加库)

The two ways of domestic chip industry chain go hand in hand. ASML really panicked and increased cooperation on a large scale

中国广电正式推出5G服务,中国移动赶紧推出免费服务挽留用户
![[Web attack and Defense] WAF detection technology map](/img/7c/60a25764950668ae454b2bc08fe57e.png)
[Web attack and Defense] WAF detection technology map

stirring! 2022 open atom global open source summit registration is hot!

机器学习01:绪论

Jarvis OJ webshell analysis

The survey shows that the failure rate of traditional data security tools in the face of blackmail software attacks is as high as 60%

兰空图床苹果快捷指令

China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
随机推荐
Using C language to realize palindrome number
Application of threshold homomorphic encryption in privacy Computing: Interpretation
Use JDBC technology and MySQL database management system to realize the function of course management, including adding, modifying, querying and deleting course information.
Writing method of twig array merging
Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem
Embedded UC (UNIX System Advanced Programming) -3
Is it safe for qiniu business school to open a stock account? Is it reliable?
The two ways of domestic chip industry chain go hand in hand. ASML really panicked and increased cooperation on a large scale
【剑指 Offer】61. 扑克牌中的顺子
Embedded-c language-6
What else do you not know about new map()
Jarvis OJ Telnet Protocol
Iphone14 with pill screen may trigger a rush for Chinese consumers
【jmeter】jmeter脚本高级写法:接口自动化脚本内全部为变量,参数(参数可jenkins配置),函数等实现完整业务流测试
WSL2.0安装
Learnopongl notes (II) - Lighting
Jarvis OJ Flag
C# TCP如何设置心跳数据包,才显得优雅呢?
ThoughtWorks global CTO: build the architecture according to needs, and excessive engineering will only "waste people and money"
Embedded-c Language-1