Question

What happens if both values in an or statement are non-null?

Does mysql uses the left side every time or is there a possibility that mysql uses the right side?

SELECT * 
FROM posts p 
WHERE parent_id = ? OR id = ?
ORDER BY date 
DESC LIMIT 1
Was it helpful?

Solution

  1. If the values are null then the comparison with = will fail. Use IS instead.
  2. You can't really tell which condition will be executed first and how the DB handles the filtering. This is totally up to the optimizer at runtime.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top