In welcher Reihenfolge würde dies ausgewertet werden. Meine Absicht ist, dass, wenn es entweder foo oder bar findet, es auch nach lol und rofl suchen würde.
Ist das total im Wald? Und wenn ja, wie würde man einen solchen Ausdruck bewerten?Wo 'foo' ODER 'bar' UND 'lol' ODER 'rofl' MySQL
4
A
Antwort
6
The AND
operator has higher precedence than OR
in MySql, so dass Ihre aktuellen Ausdruck auswertet als:
WHERE 'foo' OR ('bar' AND 'lol') OR 'rofl'
Klammern zum Ausdruck hinzufügen, wenn Sie die Bewertung, um erzwingen wollen:
WHERE ('foo' OR 'bar') AND ('lol' OR 'rofl')
1
einen Blick auf the documentation - und hat eine höhere Priorität, so würde es so aussehen:
WHERE 'foo' OR ('bar' AND 'lol') OR 'rofl'
4
AND
wird zuerst verarbeitet werden, danach OR
verarbeitet werden. Also, es wird sein:
'foo' OR ('bar' AND 'lol') OR 'rofl'
Danach ist es links nach rechts.
0
SELECT
Id, Name
FROM
TestTable
WHERE
(Name = 'foo') OR (Name = 'bar') AND (Name = 'lol') OR (Name = 'rofl')
geben Sie das folgende Ergebnis in MS SQL Server:
1 foo
4 rofl
es scheint So wird es bar kombinieren UND lol und evals foo und rofl seperat wie folgt aus:
SELECT
Id, Name
FROM
TestTable
WHERE
(Name = 'foo') OR ((Name = 'bar') AND (Name = 'lol')) OR (Name = 'rofl')
Was Sie wahrscheinlich wollen, ist (technisch):
SELECT
Id, Name
FROM
TestTable
WHERE
((Name = 'foo') OR (Name = 'bar')) AND ((Name = 'lol') OR (Name = 'rofl'))
Verwandte Themen
- 1. foo (bar) und foo (bar, baz)
- 2. Match foo oder bar vim regex
- 3. Unterschied zwischen "if (foo) bar();" und "foo && bar();"
- 4. SqlConnection und der Pool, hält eine offene Verbindung kung-foo oder foo-bar?
- 5. MySQL - Wo oder?
- 6. Javascript überprüft, ob str entspricht foo oder bar
- 7. Wie überprüfe ich eine Zeile mit foo oder bar?
- 8. jquery ("foo bar") vs jquery ("foo"). Find ("bar")
- 9. Linq - Wo(). Wo() ist UND oder ODER?
- 10. intern foo und bar Tests laufen ohne
- 11. isinstance (foo, types.GeneratorType) oder inspect.isgenerator (foo)?
- 12. Aufruf Foo :: Bar von Bar :: BazController
- 13. static = foo "bar" vs. MyClass.foo = "bar"
- 14. MongoDB verschachtelt ODER/UND Wo?
- 15. Mysql oder/und Vorrang?
- 16. Foo <Bar in Ruby
- 17. Was macht object * foo (bar)?
- 18. Legalität des `typedef struct foo {int bar};`
- 19. Funktion Namenskonvention für "foo in bar konvertieren"
- 20. In C was bedeutet [foo] = bar?
- 21. ODER vs UND in MySQL
- 22. Apache Rewrite: dir/file.php foo = bar & name = val -> file.php newparam = dir & foo = bar & name = val
- 23. Wie address.com/foo/bar zu address.com:port/bar mit nginx umleiten?
- 24. Unterschied zwischen "foo.bar" und "foo ['bar']" in js
- 25. Welches ist effizienter: .parent(). Parent(). Parent() ~ oder ~ eltern (". Foo") ~ oder ~ am nächsten (". Foo")
- 26. Filter Boto Instanzliste von 'tag: komponente': 'foo', oder 'tag: komponente': 'bar'
- 27. Fehler: Sprung mit gcc oder Klappern, beschriften ‚foo‘ kreuzen Initialisierung von ‚bar‘
- 28. Swift: Fall foo (let bar): ohne einen Typ oder eine Zuordnung?
- 29. Was ist ein `int foo :: * bar :: *`?
- 30. Wo speichere ich Hashtabellen- oder Dictionary-Schlüsselnamen?
Sehr viel appriciated. War unter dem Eindruck, dass OR eine höhere Priorität hatte. Vielen Dank. –