Welcher Operator: /
oder *
haben die höhere Priorität in MySQL
?operator precedence in mysql
Antwort
Wie die meisten Programmiersprachen sehen sind, mysql führt /
und *
(sowie DIV,% und MOD) von links nach rechts in der Reihenfolge auftreten sie. Zum Beispiel:
1/2 * 3/4/5 * 6
entspricht
((((1/2) * 3)/4)/5) * 6
Siehe http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html für eine vollständige Liste der Operator Vorrang.
/oder * hat in mysql die höchste Priorität.
Sie haben die gleiche Priorität.
Sie die gleiche http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html
Sie haben die gleiche Priorität, * wird zuerst aufgeführt, und MySQL wird von links nach rechts ausgewertet.
http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html
Mein Rat ist, Gebrauch Klammern(), um die Dinge klar zu machen.
Es ist immer am besten, um zu überprüfen, und das kann sehr leicht mit MySQL erfolgen:
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)
Die Betreiber priorisiert werden als von der höchsten Priorität auf den niedrigsten aufgeführt:
- BINARY, COLLATE
- NICHT (logische Verneinung),! (Logische Negation)
- .- (unären minus), ~ (unären Bitinversion)
- ^(bitweise Exklusiv-ODER-Vergleich)
- . * (Multiplikation),/(Division),% (modulo)
- .- (Subtraktion), + (Addition)
- < < (bitweise Verschiebung links), >> (bitweise Verschiebung nach rechts)
- & (bitweise AND)
- | (Bitweise OR)
- Vergleichsoperatoren wie <>
- BETWEEN, NOT BETWEEN
- UND & & (conjuction - logische Addition)
- XOR (logische Exklusiv-ODER-Vergleich)
- OR || (Disjunktion - entweder/oder Vergleich)
Wie pro Liste der Vergleich Operator BINARY hat Vorrang vor der BETWEEN und Ampersand (&) Betreiber.Operatoren in derselben Zeile haben die gleiche Priorität und werden in der Reihenfolge der Verwendung ausgewertet.
Ich würde das schnell löschen, ChrisAD. Ich denke, es ist falsch. – paxdiablo
ja es war falsch Pax =) In MySQL wird es in der Reihenfolge der Verwendung ausgewertet, wenn sie auf dem gleichen Niveau sind. Ich habe auf Transact-SQL hier gelesen: http://msdn.microsoft.com/en-us/library/ms190276.aspx, die für MySQL nicht gleich ist =) Danke PAx –
Die Antwort ist: es sollte keine Rolle spielen. Wenn Sie einen Ausdruck haben, bei dem Sie nicht sicher sind, wie er ausgewertet wird, verwenden Sie parens. Sie sind frei.
- 1. ANTLR Operator Precedence
- 2. Java Precedence
- 3. Groovy Precedence Ausgabe
- 4. MySql: SELECT-Anweisung in Operator
- 5. Mysql IN Operator mit ifnull
- 6. Mysql like operator
- 7. Jackson Jaxb Annotation Precedence - @ JsonProperty überschreibt @XmlTransient
- 8. Nicht IN-Operator in mysql gibt
- 9. Logischer UND-Operator in mySql REGEXP?
- 10. Operator Vorrang in C (! = Und |)
- 11. MySQL Abfrage- Ausgabe während wie Operator
- 12. Mysql Like + Wild Card vs Equals Operator
- 13. Ausgabe von Select in MySql mit NOT IN Operator?
- 14. MySQL - NULL sicher nicht gleich Operator
- 15. MySQL String Trennung durch Komma-Operator
- 16. einen Thread in Java und Operator Vorrang
- 17. MySQL Case in Select-Anweisung mit LIKE-Operator
- 18. AND-Operator arbeitet nicht in einer PHP-Funktion mit MySQL
- 19. Coalesce Operator und Conditional Operator in VB.NET
- 20. : Operator (der 'Elvis Operator') in PHP
- 21. Wie umschreiben Swift ++ Operator in: ternäre Operator
- 22. Python-Operator, kein Operator für "nicht in"
- 23. In Operator in Linq
- 24. "IN" Operator in Linq
- 25. So verwenden LIKE OR-Operator mit CakePHP & mysql
- 26. Wie kann ich PhpStorm für MySQL einen akzeptablen Operator hinzufügen?
- 27. Eine Bibliothek für MySQL reserviert und Operator Wörter und Sätze
- 28. Filtern von json ähnlich wie mysql "like" -Operator
- 29. MySQL größer oder gleich Operator ignoriert seine oder gleich
- 30. Python-Operator Vorrang - und vs größer als
Kann der Downvoter seine Argumentation erklären? – Artelius