哪个运算符:/
或*
在MySQL
中具有更高的优先级?
答案 0 :(得分:3)
与大多数编程语言一样,mysql按照它们出现的顺序从左到右执行/
和*
(以及DIV,%和MOD)。例如:
1 / 2 * 3 / 4 / 5 * 6
相当于
((((1 / 2) * 3) / 4) / 5) * 6
请参阅http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html以获取运营商优先顺序的完整列表。
答案 1 :(得分:2)
从最高优先级到最低优先级列出了运算符的优先级:
根据列表,比较BINARY运算符优先于BETWEEN和&符号(&)运算符。上面同一行的运算符具有相同的优先级,并按使用顺序进行评估。
答案 2 :(得分:1)
答案 3 :(得分:1)
它们具有相同的优先级,*首先列出,MySQL将从左到右进行评估。
http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html
我的建议是使用方括号()来清楚说明。
最好检查一下,使用MySQL可以很容易地完成:
mysql> SELECT 2*3/2, 2/3*2, 2*(3/2) ;
+--------+--------+---------+
| 2*3/2 | 2/3*2 | 2*(3/2) |
+--------+--------+---------+
| 3.0000 | 1.3333 | 3.0000 |
+--------+--------+---------+
1 row in set (0.00 sec)
答案 4 :(得分:0)
/或*将在mysql中具有最高优先级。
他们的优先权相同。
答案 5 :(得分:0)
答案是:应该没关系。如果您有一个表达式,您不确定它是如何评估的,请使用parens。他们是免费的。