当前位置:网站首页>What are the precautions for MySQL group by

What are the precautions for MySQL group by

2022-07-05 17:14:00 1024 questions

Catalog

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 where

stay 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 alone

having and group by Can be used alone , The following query is shown : 

3.having and group by You can use aliases

** 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 : 

Why? where You can't use aliases ? by having But you can ?

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 :

PS:group by Be able to use the principle and having similar .

summary

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 !


原网站

版权声明
本文为[1024 questions]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207051641540684.html