0
我有以下準備語句查詢:MySQL和條款後OR子句被忽略
SELECT id FROM CustomerSettings WHERE id >= ? OR displayNameType = ? AND id < ? LIMIT 5 OFFSET 1
查詢的「ID <」的部分被忽略。奇怪的是,如果我移動OR語句前面的語句,那麼它將被MySQL數據庫引擎正確評估。這種預期的行爲似乎很奇怪。我也曾嘗試將OR子句放在括號內,這不幸也沒有奏效;緊接在OR之後的AND子句仍然被忽略。
很難確切地看到您要查找的結果。 'AND'綁定比'OR'更緊密,所以MySQL會將你的解析爲'WHERE id> =? OR(displayNameType =?AND id <?)'如果那不是你想要的,那麼這個選擇可能沒有意義。(id> =?OR displayNameType =?)AND id <?'因爲'id'可能不是能夠滿足這兩個條件。 –