Skip to main content

Order Operation SELECT MySQL

Many people may not know how MySQL has the sequence of the SELECT statement that we use. And many others as well, probably asking me, why do we know it (FA)

In the official program Determining the order of work, It is very important. Determining the correct order will result in the result being incorrect. It may cause the result to be incorrect, such as multiplying 2 + 5 * 3 multiplying before adding. Will get the result 17, but if adding before multiplying Will get a result of 21 which is not equal As for the result, it will be correct depending on the problem. Which we have a way to force the result to be always correct with the work order such as

SELECT 2 + 5 * 3 และ SELECT 5 * 3 + 2

The result will always be 17 since MySql will always execute * before +. Therefore, if the correct result is 21, then this calculation will be wrong. Control results are always accurate by placing parentheses around the order in which MySQL will calculate the results from

Innermost bracket -> outermost bracket such as

SELECT (3 * (2 + 5) ) = SELECT (3 * (7) ) = 21

And for the same hierarchy Will be processed from left to right, for example

SELECT (2 + 5) * 3 = SELECT 7 * 3 = 21
SELECT (2 + 5) * ( 3 * 1 ) = SELECT (7) * (3 * 1) = SELECT (7) * (3) = 21

A bit out-of-focus, back to the work order of SELECT

SELECT .....
FROM ......
[WHERE .....]
[GROUP BY .....]
[HAVING ......]

  1. For the first time, MySQL will process at the FROM line to select the database first, including various JOIN commands (if any) to select the data from JOIN first.
  2. Next, if there is a WHERE clause, MySQL will continue processing from this command. In which the processing processes orders from left to right Determining the order of comparison in this section It is very important to the result. If wrongly determined, the result may not be correct, with various priority rules. Will meet the requirements of MySQL, but in practice we should choose a query that gives results Least left On the left-hand side and query which gives more results On the right-hand side.
  3. The GROUP BY statement will be processed next (if any) to group the table according to the specified conditions.
  4. HAVING will be processed further To filter the results from GROUP BY again
  5. Finally, SELECT will work to select the desired column according to the statement

Comments

Popular posts from this blog

Changing AppServ Path Directory

Usually when we install AppServ on our machine Important instructions for installation are Use the given value in the program as the best, which will allow us to The directory that stores files on our device is "C:\AppServ\www" which, if we want to change this file store to another place Let us do as follows Go to Start Menu -> Programs -> AppServ -> Apache Configure Server -> Edit the Apache httpd.conf Configuration File. Clicking will open the file httpd.conf and edit it with NotePad. Let us use Replace to search and replace. "C:/AppServ/www" with the new directory name that we want. For example, "D:/www", every character is assigned to the new directory "D:\www" After that, save the file to the same name and then restart the Apache is complete. Now that we have a new directory that holds our files as "D:\www" as needed, let us put the index.php file into this directory. And then test by typing http://l

How to Improve W3C Rule

In general, if it is HTML , it is not difficult to make a website via W3C . Using Dreamweaver, it is already passed. If not, there is still an error. But if it's a script, you're dizzy, so you have to sit and do it yourself line by line What I would say here is Things that I often encounter img does not have an alt and without/before the end of the tag, especially in the first case. If we don't know what to put alt, they can put a blank value <img src = "xxx.jpg" alt = "" /> The script does not have a type. For example, <script language = "JavaScript" src = "js / function.js" type = "text / javascript"> </script> style, also must have type <link rel = "stylesheet" href = "style / style.css" type = "text / css" /> Some of the properties of the tag, such as align bgcolor. They are no longer used. In truth Must remove it all. If there is an error as soon as I st

Priorities Within the WHERE Statement of MySQL

Prioritization within the WHERE clause of MySQL has a profound effect on query performance, especially in the case of the database is large or complex queries, in which MySQL processes the SQL statements from left to right. The important principle of the priority of queries in this section is to specify the results that are ordered in ascending order from left query to right query. I give an example of the member database. Suppose there are 100 records in total. 50 men, 50 women and have a unique name. I want information that is male. SELECT * FROM user WHERE sex='m' I will get 50 records. If I need information called test. SELECT * FROM user WHERE username='test' I will get only one record (if any). The above command will execute a loop from the first record one by one and compare the data within the WHERE statement. Of course, it will need to process 100 cycles according to the amount of data. Suppose, if I want the data named test male, I ca