问题
I have a written a mysql select query
to fetch schedule details based on origin states,origin city,destination state and destination city. In my query i have used AND
and OR
operator.
Here is my query,
SELECT * FROM TruckLoadSchedule ts
WHERE ts.originState IN (states) AND ts.originCity IN (cities)
OR ts.destState IN (states) AND ts.destCity IN (cities);
But I need to know the priority of AND and OR operator in the above query, i mean to say will it do something like this (X AND Y) OR (M AND Q)
internally?
回答1:
Yes, AND has higher precedence than OR. x and y are bound together, m and q are bound together, then the resulting expressions are ORed.
回答2:
AND has a higher priority than OR in every programming language I have ever seen, and I've seen several dozen at close quarters, and implemented a few myself. This question was basically settled in 1960 with the Algol-60 report, if not already in Fortran (1957).
[There was one exception but it was a mis-implemented language with no operator precedence at all. I fixed that.]
回答3:
Yes it will do something like (X AND Y) OR (M AND Q)
. AND
operator's priority is higher than OR
.
For more see MySQL: Operator Precedence
来源:https://stackoverflow.com/questions/16249865/priority-of-and-and-or-operator-in-mysql-select-query